C 猜糖块 SDUT


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;
}
发布了136 篇原创文章 · 获赞 95 · 访问量 2319

猜你喜欢

转载自blog.csdn.net/zhangzhaolin12/article/details/103964291