首页 技术 正文
技术 2022年11月10日
0 收藏 862 点赞 2,677 浏览 857 个字

描述

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。

输入

一个整数(范围1到10000),表示天数。

输出

骑士获得的金币数。输入一个整数(范围1到10000),表示天数。输出骑士获得的金币数。

样例输入

6

样例输出

14

法一
#include<iostream>using namespace std;int n;int main(){    cin>>n;    ,s=,z=;//t表示当前每天可以得到几枚金币,s表示当前金币总数,z表示当前总天数    )    {        t++;        if(t+z> n) break;/*t=a既可以表示当前每天可以得到a枚金币,也可以表示得a枚金币的状态即将持续a天,注意是即将持续,也就是这a*a枚金币在这时还没有累积,而z是当前已经计算了的天数。当t+z>n时,也就是如果用a*a的当时累加,会使得到金币的天数>n,所以要break,通过后面的for循环一天一天的加。*/        s+=t*t;//t*t为这t天一共可得的金币数        z+=t;    }    ;i<=n;i++) s+=t;/*当上面t+z=n时,不会break,累加一次t*t,    此时恰好得了n天的金币,z=n,for循环条件不满足,不执行。*/    cout<<s;

法二

#include<iostream>#include<cmath>using namespace std;int main(){    ,s=;    cin>>n;    ;i<=n;i++)    {        ;j<=i;j++)        {            if(t>=n) break;//eg:t=6时说明已经循环了6天,当t=6进入循环是已经是第七天的钱            s=s+i;            t++;//t表示已经过的天数        }    }    cout<<s;    ;}
上一篇: Java实现插入排序
下一篇: struts-OGNL
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,488
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,488
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289