Result | TIME Limit | MEMORY Limit | Run Times | AC Times | JUDGE |
---|---|---|---|---|---|
![]() | 3s | 8192K | 810 | 293 | Standard |
作为2进制的加法,从k加1变成k+1可能会出现若干进位。如1011加1就会有2个进位。给定n,从0开始不停地加1直到n,计算在此过程中总共会有多少次进位。
Input
输入的每一行有单独的一个值n。n=0标志输入结束Output
对于输入的每一行,使用单独一行输出对应结果。Sample Input
2 5 10 0
Sample Output
1 3 8
#include <stdio.h>
int main ()
{
int n;
while (scanf("%d",&n)!=EOF && n)
{
int ans=0;
while(n>>=1)
ans+=n;
printf("%d/n",ans);
}
return 0;
}