CodeForces Round #280 (Div.2)
2014-12-02 13:07
148 查看
A
解题思路:即为给出的形如 1,1+2,1+2+3,1+2+3+4,----,1+2+3+4+---+n的数列,给你一个数判断它在该数列的第几项。这个数列的前n项和公式为 s(n)=n*(n+1)*(n+2)/6;
证明 s(n)=n*(n+1)*(n+2)/6
因为 a(n)=n*(n+1)/2=n*n/2+n/2;
所以 s(n)=(1*1+2*2+3*3+---+n*n)/2+(n*(n+1)/2)/2
=[n*(n+1)*(2n+1)/6]/2+n*(n+1)/4;
=n*(n+1)*(n+2)/6
即为判断输入的值在[s(n),s(n-1))这个半开半闭区间,则处于第n层
解题思路:即为给出的形如 1,1+2,1+2+3,1+2+3+4,----,1+2+3+4+---+n的数列,给你一个数判断它在该数列的第几项。这个数列的前n项和公式为 s(n)=n*(n+1)*(n+2)/6;
证明 s(n)=n*(n+1)*(n+2)/6
因为 a(n)=n*(n+1)/2=n*n/2+n/2;
所以 s(n)=(1*1+2*2+3*3+---+n*n)/2+(n*(n+1)/2)/2
=[n*(n+1)*(2n+1)/6]/2+n*(n+1)/4;
=n*(n+1)*(n+2)/6
即为判断输入的值在[s(n),s(n-1))这个半开半闭区间,则处于第n层
#include<stdio.h> int main() { int i,n; int s1,s2; while(scanf("%d",&n)!=EOF) { for(i=1;i<=100;i++) { s1=i*(i+1)*(i+2)/6; s2=(i+1)*(i+2)*(i+3)/6; if(n>=s1&&n<s2) { printf("%d\n",i); break; } } } }
相关文章推荐
- 简单几何(水)BestCoder Round #50 (div.2) 1002 Run
- BestCoder Round #51 (div.2) 1001 找规律+判素数
- TSP+Floyd BestCoder Round #52 (div.2) 1002 Victor and Machine
- Rikka with Graph-------(BestCoder Round #53 (div.2))
- BestCoder Round #54 (div.2)
- Codeforces #319(Div.2) A. Multiplication Table
- hdu5463 Clarke and minecraft(BestCoder Round #56 (div.2) )
- HDU 5479 Scaena Felix(暴力)——BestCoder Round #57(div.2)
- cf#324 Div.2 Problem A Olesya and Rodion
- BCRound #59 (div.2)
- #BestCoder Round #59 (div.2)
- BestCoder Round #61 (div.2) HDU5523 Game
- HDU 5563 Clarke and five-pointed star(判断正五边形)——BestCoder Round #62(div.1 div.2)
- BestCoder Round #62 (div.2) HDOJ5563 Clarke and five-pointed star(计算几何)
- hdu5569/#63 (div.2) 1003
- HDU 5586 Sum(最大连续子序列和)——BestCoder Round #64(div.1 div.2)
- Codeforces Round #325 (Div.2) C.Gennady the Dentist
- CF 335 div.2-C/div.1-A/605A Sorting Railway Cars
- BestCoder Round #68 (div.2)-tree(并查集)
- BestCoder Round #69 (div.2) 总结