C 猜糖块 SDUT

余生长醉 提交于 2020-02-04 11:17:57

Description

小狗对小猫说:你猜猜我的口袋里有几块糖?小猫说:猜对了你给我吃吗?小狗点点头:嗯,猜对了两块都给你!小猫咽了咽口水说:我猜五块!然后,小狗笑着把糖放到小猫手里,说:我还欠你三块。
既然小猫这么喜欢吃糖,小狗决定每天都给小猫几块糖,但是呢,不能每天都给相同块数的糖,那样就太单调了。于是,第一天小狗给小猫11=1块,第二天22=4块……第 n 天给的糖数为 n*n 。现在已知小狗家共有 N 块糖,你需要帮他计算下这些糖最多可以给小猫几天?


Input

输入只有一个整数 N (0 <= N <= 10000)。


Output

输出对应的天数。


Sample
Input

15


Output

3


本题可以用总数一次一次的减,也可以用加的思路,即知道有一天的所需的糖块数比出事的总数大

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,i,N,x;
    int sum=0;
    scanf("%d",&N);
    for(i=1; i; i++)
    {
        x=i*i;
        sum=sum+x;
        //sum即为所需的糖块数;
        if(sum>N)
        //直到sum比N大时终止循环,此处不要用sum>=N,否则需要再考虑sum是不是等于N;
            break;
    }

    printf("%d",i-1);//不要忘了减“1”,因为最后一天是已经不够了;
    return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!