用循环语录编写关于2的0次方加到2的63次方的值,哪个地方有错误吗?结果不对
2条回答 默认 最新
- CSDN专家-link 2022-03-14 16:54关注
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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 2