思路:由于是相同指数的累加,所以我们首先就想到用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分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论