用循环语录编写关于2的0次方加到2的63次方的值,哪个地方有错误吗?结果不对
2的63次方太大了,用int型不够,改为unsigned long long型
另外你的代码还有个问题,题目要求2的0次方到63次方的和,你少算了一次。
j默认为1,可以表示2的0次方,因此for循环中,j*=2要放在sum+=j之前,这样第一次循环sum增加的数才是2的1次方
#include <stdio.h>
int main(){
unsigned long long sum=0,j=1;
for(int i=1;i<=63;i++)
{
j*=2;
sum += j;
}
printf("%llu",sum);
system("pause");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!