| 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;
}
本文介绍了一个计算从0到n进行二进制加法时总进位次数的算法。通过输入一个整数n,程序将输出从0开始逐个加1直至n的过程中产生的总进位数。
295

被折叠的 条评论
为什么被折叠?



