电子协会 C语言 1级 74 、骑士的金币(2020年真题)

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题)

C++画图之Go C编程 第1-9课(共53题)_dllglvzhenfeng的博客-CSDN博客

OpenJudge NOI题库 116题

OpenJudge NOI题库 116题_ojnoi1.5.19_dllglvzhenfeng的博客-CSDN博客

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++编程基础(一)--- 123题_dllglvzhenfeng的博客-CSDN博客

小学生C++趣味编程 每日一练

小学生C++趣味编程 每日一练_dllglvzhenfeng的博客-CSDN博客

信息学奥赛 算法基础 课堂练习与课后作业

信息学奥赛 算法基础 课堂练习与课后作业_dllglvzhenfeng的博客-CSDN博客

PAT乙级(Basic Level)真题

PAT真题在线练习_过20题领考试代金券_牛客题霸_牛客网

 




 


 


 


 


 


 


 


 


 


 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值