74 、 骑士的金币(2020 年真题)
国王将金币作为工资,发放给忠诚的骑士。
第一天,骑士收到一枚金币;之后两天
(第二天和第三天)里,每天收到两枚金币;
之后三天(第四、五、六天)里,每天收到三枚金币;
之后四天(第七、八、九、十天)里,每天收到四枚金币……
这种工资发放模式会一直这样延续下去:
当连续 N 天每天收到 N 枚金币后,骑士会在之后的连续 N+1
天里,每天收到 N+1 枚金币(N 为任意正整数)。
你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。
输入
一个整数(范围 1 到 10000),表示天数。
输出
骑士获得的金币数。
样例输入:6
样例输出:14
C++代码一:
#include <iostream>
using namespace std;
int main()
{
int k, n, ans=0, s=0,i;
cin>>n; //输入天数
k=1; //所给金币数
s=0;
for(i=1; i<=n; i++)
{
ans+=k; //计算国王给的总的金币
s++; //计算给相同金币的重复天数
if (k==s) { //如果所给金币个数等于重复的天数
k++; //将每天给的金币的个数增加 1
s=0; //将重复天数重新归零
}
}
cout<<ans;
return 0;
}
C++代码二:
//通用头文件
#include <bits/stdc++.h>
//名字空间
using namespace std;
int n,ans=0,days=0;
int main( void )
{
int i,j;
cin>>n;
for(i=1;;i++)
{
//连续j天,每天得到i个金币
for(j=1;j<=i;j++)
{
//累加金币数
ans+=i;
//总天数
days++;
if(days==n)
{
cout<<ans<<endl;
exit(0);
}
}
}
return 0;
}
C++代码三:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,s,sum=1,ans=0;
cin >> n;
int coins=1;
ans=0;
for(int i=1;i<=n;i++)
{
ans+=coins;
if( i==coins*(coins+1)/2 )
{
coins+=1;
}
}
cout<<ans<<endl;
return 0;
}
C++代码四:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int k,ans=0,days=0;
int i,j;
cin>>k;
//k=6
for(i=1;;i++)
{
//需要i天增加i个金币
for(j=1;j<=i;j++)
{
days++;
//每天需要增加i个金币
ans+=i;
if( days == k )
{
cout<<ans<<endl;
return 0;
}
}
}
return 0;
}
C++代码五:
#include<cstdio>
using namespace std;
int main()
{
int k,i,t=1,sum=0; //t为一天发的金币数
scanf("%d",&k);
for(i=1;i<=k;i++)
{
if(t*(t+1)/2<i) //由题意可知,第t个金币的最后一天
{
t++; //由此可以省去穷举当天该发金币数量的大量时间
}
sum+=t;
}
printf("%d\n",sum);
return 0;
}
/*
1223334444
1 3 6 10
1+2+3+4...t
*/
C++代码六:
#include<iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);//优化。
int n,i,s=0,s1=1,k=0;
cin>>n;
for(i=1;i<=n;i++)
{
s++; //计算天数。
k=k+s1; //记录金币。
if(s==s1)
{
s=0;
s1++;
} //重新记录时间。
}
cout<<k<<endl;
return 0;
}
少儿C++编程 课堂练习与课后作业 每日一练
C++画图之Go C编程 第1-9课(共53题)
OpenJudge NOI题库 116题
OpenJudge NOI题库 入门 116题 (一)
OpenJudge NOI题库 入门 116题 (一)_dllglvzhenfeng的博客-CSDN博客_openjudge题库答案
OpenJudge NOI题库 入门 116题 (二)
OpenJudge NOI题库 入门 116题 (二)_openjudge题库_dllglvzhenfeng的博客-CSDN博客
OpenJudge NOI题库 入门 116题 (三)
OpenJudge NOI题库 入门 116题 (三)_dllglvzhenfeng的博客-CSDN博客_openjudge 开关灯c++
小学生C++编程基础(一)--- 123题
小学生C++趣味编程 每日一练
信息学奥赛 算法基础 课堂练习与课后作业
PAT乙级(Basic Level)真题