#include <iostream>

using namespace std;

int main() {
    long long n;
    cin >> n;
    
    // 每个数都分裂一次,就会多出一个0
    // 由于每个数分裂后的两部分都会继续分裂,所以每个数最终会分裂出log2(n)个0
    // 因此最终0的个数就是n * log2(n)
    long long num_zeros = n * log2(n);
    cout << num_zeros << endl;
    
    return 0;
}
初始有一个数n每过一秒所有大于1的数x都会分裂成3部分:⌊x2⌋ x2 ⌊x2⌋问经过足够长的时间后即所有的数都是0或1的时候0的个数是多少输入数据一个正整数nn=1e12输出数据最终0的个数 c++

原文地址: http://www.cveoy.top/t/topic/hWKt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录