白的像碳


私信TA

用户名:210591140

访问量:332

签 名:

每个人的花期不同,不必焦虑别人比你提前拥有

等  级
排  名 5923
经  验 1479
参赛次数 0
文章发表 5
年  龄 19
在职情况 学生
学  校 大学
专  业 软件工程

  自我简介:

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

  评论区

  • «
  • »