解题思路:
sum=2^0+2^1+2^3+ ......+2^63

参考代码:

#include <stdio.h>
#include <math.h>
int main()
{
    double sum = 0;

    for ( int i = 0; i <= 63; i++ )
        sum += pow( 2, i );
    printf( "%.0lf", sum );
    return(0);
}

别忘点赞哦-.-

点赞(18)
 

0.0分

7 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 8 条评论

Catshao 3年前 回复TA
@头晕眼花 用ull
月儿会弯 3年前 回复TA
@小布丁 应该没影响 题目答案错了
万卷消永愁 4年前 回复TA
@onemorecod double精度只有19位,double最大值可以看下,这个题答案就是2的64次方-1,是20位的答案18446744073709551615,这个才是标准答案。题目给的近似值,这个题真的搞笑,出题的都不验证,误人子弟,我发现这个题库有几个答案都有问题,所以思路对了就行,AC是次要。double会把溢出的数只保留前19位,后面的补0,都可以自己验证的。longlong也是19位的精度,所以不要走捷径。以后做题看好精度,不然错了都找不到问题,特别是一些正规的比赛,根据精度来选择是很有必要的。这个题正解就是整型数组的大数相乘,求64个2相乘最后-1就是正解答案。
kimi 4年前 回复TA
@小布丁 int i 提不提出来有影响吗0.0
onemorecod 4年前 回复TA
#include <stdio.h>
#include <math.h>

int main()
{
	double sum;

	sum = pow(2,64)-1;
	
	printf("%.0f",sum);
	
    return 0;
}
有答案,但是提交之后是错的,不知道为什么
头晕眼花 5年前 回复TA
C语言最高数位只有19位有效数字,答案有20位,怎么破?
小布丁 5年前 回复TA
你好楼主,是不是应该将int i;提出来,我不知道你的for是不是c++形式的,如果改成
#include <stdio.h>
#include <math.h>
int main()
{
    double sum = 0;
    int i;
    for (  i = 0; i <= 63; i++ )
        sum += pow( 2, i );
    printf( "%.0lf", sum );
    return(0);
}
在code::block上运行是可以有题目答案的。
飞扬 6年前 回复TA
我也跑不出题目答案