问题遇到的现象和发生背景
问题相关代码,请勿粘贴描述
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去。当连续 n天每天收到 n 枚金币后,骑士会在之后的连续 n+1 天里,每天收到 n+1 枚金币(n 为正整数)。
请编程确定从第一天开始的给定天数内,骑士一共获得了多少金币。
输入
输入包含至少一行,但不多于 1000 行。
除最后一行外,输入的每行是一组输入数据,包含一个正整数 n,表示天数。
输入的最后一行为 0,表示输入结束。
输出
对每个数据输出一行一个整数,表示该数据对应总金币数。
输入样例 1
10
6
7
11
15
16
100
10000
1000
21
22
0
输出样例 1
30
14
18
35
55
61
945
942820
29820
91
98截图
运行结果及报错内容
#include<iostream>
using namespace std;
int main(){
int a,b=1,c=1,d=0,e=1;
long long x=1;
cin>>a;
while(b<=a){
d+=c;
b++;
if(b>e){
c++;
e+=c;
x=c+d;
cout<<x<<endl;
}
}
cout<<"0"<<endl;
cout<<d;
return 0;
}
我的解答思路和尝试过的方法
用double和longlong
我想要达到的结果
输出样例 1
30
14
18
35
55
61
945
942820
29820
91