又一道被修改的题目 c++求助
【题目描述】国王将金币作为工资,发放给忠诚的骑士。第1天,骑士收到一枚金币;之后两天里,第2天收到2枚金币和第3天收到1枚金币;之后三天,第4天3枚金币,第5天2枚金币和第6天1枚金币;之后四天里,第7天4枚金币,第8天3枚金币,第9天2枚金币和第10天1枚金币……这种工资发放模式会一直这样延续下去:
你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。
【输入】
一个整数(范围1到10000),表示天数。
【输出】
骑士获得的金币数。
【输入样例】
8
【输出样例】
17
本帖最后由 shigure_takimi 于 2018-3-22 00:02 编辑
## 没学过C++,来个Python版本的。
def coins(days):
coin = 1
a = 1
total = 0
for day in range(days):
total += coin
coin -= 1
if coin == 0:
a += 1
coin = a
return total
print(coins(1))
print(coins(2))
print(coins(3))
print(coins(8))
print(coins(10000))
##结果:
##1
##3
##4
##17
##477125 #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define Uint unsigned int
//计算并返回总合
Uint fun(Uint a)
{
Uint i=1,j,k=0,sum=0;
if (a == 0) return 0;
while(1)
{
for(j=i;j;j--)
{
k++;
sum+=j;
//printf("武士第%u天的收入是%u,合计%u\n",k,j,sum);
if(a==k) return sum;
}
i++;
}
}
int main(void)
{
Uint a;
printf("请输入你要查询的天数:");
scanf("%u",&a);
printf("\n第%u天武士的收入合计是:%u\n",a,fun(a));
} 兜里没钱 发表于 2018-3-22 01:11
#define _CRT_SECURE_NO_WARNINGS
#include
#define Uint unsigned int
谢谢,我知道了
非常不错,支持好贴,加油加油
页:
[1]