NOIP2015-普及組復賽-第一題-金幣


題目描述 Description
國王將金幣作為工資,發放給忠誠的騎士。第一天,騎士收到一枚金幣;之后兩天(第二天和第三天),每天收到兩枚金幣;之后三天(第四、五、六天),每天收到三枚金幣;之后四天(第七、八、九、十天),每天收到四枚金幣……;這種工資發放模式會一直這樣延續下去:當連續N天每天收到N枚金幣后,騎士會在之后的連續N+1天里,每天收到N+1枚金幣。
請計算在前K天里,騎士一共獲得了多少金幣。
 輸入輸出格式 Input/output
輸入格式:
輸入文件只有1行,包含一個正整數K,表示發放金幣的天數。
輸出格式:
輸出文件只有1行,包含一個正整數,即騎士收到的金幣數。
 輸入輸出樣例 Sample input/output
樣例測試點#1
輸入樣例: 
6
輸出樣例:
14
樣例測試點#2
輸入樣例:
1000
輸出樣例:
29820
說明 description
【輸入輸出樣例 1 說明】
騎士第一天收到一枚金幣;第二天和第三天,每天收到兩枚金幣;第四、五、六天,
每天收到三枚金幣。因此一共收到 1+2+2+3+3+3=14 枚金幣。

對於 100%的數據, 1 ≤ K ≤ 10,000。
 
思路:入門難度,純粹模擬即可。。
 
代碼如下:
 1 #include<stdio.h>  
 2 #include<stdlib.h>  
 3 int main()  
 4 {  
 5     //freopen("coin.in","r",stdin);
 6     //freopen("coin.out","w",stdout);   
 7     int k=1,x=1,i=1,flag=0,j=1;  
 8     int n;  
 9     int num=0;//答案 
10     scanf("%d",&n);   
11     while(1)//一直循環下去,直到 
12     {  
13        for(j=1;j<=k;j++)//連給k天  
14        {  
15           num=num+k;//加上今天獲得的錢    
16           i++;//總天數增加  
17           if(i>n)  
18           {  
19              x=0;  
20              flag=1;//跳出循環  
21              break;  
22           }  
23        }  
24        if(flag)//如果  
25           break;  
26        k++;//連給天數增加  
27     }  
28     printf("%d\n",num);  
29     return 0;  
30 }

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM