思路:由于是相同指数的累加,所以我们首先就想到用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语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:724 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:648 |
【明明的随机数】 (C语言代码)浏览:845 |
Hello, world! (C语言代码)浏览:916 |
剪刀石头布 (C语言代码)浏览:1519 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:712 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:420 |
C语言训练-8除不尽的数 (C语言代码)浏览:1469 |