时间限制 1000 ms
内存限制 64 MB
题目描述
初始有一个数n,每过一秒所有大于1的数x都会分裂成3部分:⌊x/2⌋, x%2 , ⌊x/2⌋
问经过足够长的时间后,即所有的数都是0或1的时候,0的个数是多少.
输入数据
一个正整数n,n<=1e12
输出数据
最终0的个数
样例输入
5
样例输出
2
样例说明
注意n要用long long存
样例解释: {5}–>{2,1,2}–>{1,0,1,1,1,0,1}
我首先想到的是用递归的方法,但是很明显当n过大时,就超时了。
后来我就想到,n mod 2可以用来判断奇偶,先判断奇偶再进行计算,这样就ac了
#include <iostream>
using