思路:由于是相同指数的累加,所以我们首先就想到用pow()函数来进行遍历累加,这样节省很多时间。
关键在于理解了代码思路后,对输出答案的确定,题中说总和sum<=n,就意味着有两种情况,
情况一i立方没有递增时小于n,递增后就大于n,这是应该输出递增后的前一项;
情况二i立方总值此时已经等于n,直接输出i即可,不必继续递增。
如果没有发现这些问题,那答案就没法满分
思路清晰后,代码如下
#include<stdio.h>
#include<math.h> //pow函数在math中
int main()
{
int sum=0; //用于求和
int n; //输入限定的范围值
scanf("%d",&n);
for(int i=1;;i++) //i一直自增,但不限定范围
{
sum+=pow(i,3); //sum不断求和
if(sum>n) //第一种情况,sum>n,则输出i-1
{
printf("%d\n",i-1);
break; //输出后结束循环,否则输出超限
}
else if(sum==n) //sum=n,第二种情况,直接输出i值
{
printf("%d\n",i);
break; //结束循环
}
}
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复