zoukankan      html  css  js  c++  java
  • 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
    ",num);  
    29     return 0;  
    30 }
     
     
  • 相关阅读:
    JQ 选择器大全
    .NET SOCKET通信编程
    .Net中的Socket通讯
    SQL Server 2008中新增的变更数据捕获(CDC)和更改跟踪
    C# 编写Window服务基础(一)
    更改windows服务的配置文件app.config
    SQLServer数据库表中将指定列分组转一行
    在c#中使用mongo-csharp-driver操作mongodb
    java 线程池的原理
    Java并发编程:ThreadLocal的使用以及实现原理解析
  • 原文地址:https://www.cnblogs.com/geek-007/p/5004365.html
Copyright © 2011-2022 走看看