POJ
来源:互联网 发布:长沙企业名录数据库 编辑:程序博客网 时间:2024/06/03 21:33
题目地址:POJ - 2000
题目描述:
国王的骑士第一天可以得到一枚金币,接下来的两天,每天都能得到两枚金币,然后接下来的三天,每天都是3枚金币......
到接下来的n天,每天都能得到n枚金币。你能帮他算一下在第n天总共得到过多少枚金币吗?
输入最少包含一行,最多不超过21行。每一行包含一行测试数据n(1<=n<=10000),表示天数。输入0表示结束。
对于每一行输入有对应的一行输出,包括输入的天数n和Stone学长到第n天得到的金币总数量。
106711151610010000100021220
10 306 147 1811 3515 5516 61100 94510000 9428201000 2982021 9122 98
#include<stdio.h> int s[10001] ; int main() {int i, j, h ; j = 1; h = 1; for (i=1; i<=10001 ; i++){ s[i] = j + s[i - 1]; // j的值直接赋予数组 ,即每h项相同 if ( h == j){ j++; //若完成循环,则进入下次循环 h = 0 ; } h++; //h为对天数的记录 } int n , d=0 ; while( scanf("%d" , &n ) !=EOF ) {if( !n ) break ;printf("%d %d\n" , n , s[n] ) ;}return 0 ;}