2015 HUAS Provincial Select Contest #2~C

4167 ワード

Description
Vanya got n cubes. He decided to build a pyramid from them. Vanya wants to build the pyramid as follows: the top level of the pyramid must consist of 1 cube, the second level must consist of 1 + 2 = 3 cubes, the third level must have 1 + 2 + 3 = 6 cubes, and so on. Thus, the i-th level of the pyramid must have 1 + 2 + ... + (i - 1) + i cubes.
Vanya wants to know what is the maximum height of the pyramid that he can make using the given cubes.
Input
The first line contains integer n (1 ≤ n ≤ 104) — the number of cubes given to Vanya.
Output
Print the maximum possible height of the pyramid in the single line.
Sample Input
Input
1

Output
1

Input
25

Output
4

この問題は入力の数の和がピラミッドの何行目かを判断することですが、入力の数がこの行の最後の1桁でなければ、出力の数字は1を減算する必要があり、最後の1桁であれば1を減算する必要はありません.2回目に数字を入力するときは、注意和のクリア、計算回数の数を1に割り当てる必要があります.そうしないとエラーが発生します.入力した数字が0の場合は、プログラムを出す必要があります.
プログラムコード:
#include<cstdio> int main() { int n,count,sum; while(scanf("%d",&n)==1&&n) { 
count=1; sum=0; for(int i=1;i<=count;i++) { sum=sum+((1+i)*i)/2; if(sum>=n) { if(sum==n) {
printf("%d
",count);
break;
} else
{
printf("%d
",count-1);
break;
} }
count++; } } return 0; }