2^0=1(B) 二进制,下同
2^1=2=10;
2^2=4=100;
··· ···
n=0,s=10-1=1;
n=1,s=100-1=11;
n=2,s=1000-1=111;
n=3,s=10000-1=1111;
··· ···
因此可以使用移位得到s,方法如下:
#include "stdio.h"
int Sum(int n)
{
int sum = 0;
sum = (1 << n) - 1; //用1移位得到s
return sum;
}
int main()
{
int n;
scanf("%d", &n);
printf("%d", Sum(n));
return 0;
}
本文介绍了一种利用二进制数的移位操作来快速计算特定形式的求和问题的方法。通过将二进制数左移指定位数再减一的操作,实现了从0到2^n-1所有整数的累加求和,该方法简洁高效。

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



