ACM 두 번 째 경기 (C)
5061 단어 ACM
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 + 2, 세 번 째 는 1 + (1 + 2) + 3 이 이렇게 순환 하기 때문에 우 리 는 매번 의 답 을 한 숫자 에 넣 어야 한다. 이 문제 에 대해 우 리 는 배열 로 문 제 를 해결 할 수 있 고 하나의 for 순환 으로 추가 할 수 를 더 해 야 한다.그러나 주의해 야 할 것 은 마지막 으로 우리 sum - n > 0 일 때 우 리 는 n 을 초과 한 것 이기 때문에 j 는 1 을 줄 여야 한다. 그러나 sum = = 0 이 라면 j 의 값 은 우리 가 얻 고자 하 는 값 이다.
프로그램 코드:
#include<cstdio> #include<iostream> using namespace std; int main( ) {int a[200]={0}; int i,n,j,sum=0; a[1]=1; for(i=2;i<200;i++) { for(j=0;j<=i;j++) a[i]+=j; } scanf("%d",&n); for(j=1;j<=i;j++) { sum+=a[j]; if(sum>n) { printf("%d
",j-1); break; } else if(sum==n) {printf("%d
",j); break; } } return 0; }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ACM - 계산 기하학 적 Pick - up sticks -- poj 2653Description Stan has n sticks of various length. The data for each case start with 1 <= n <= 100000, the number of stick...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.