描述
有一个程序员给自己定了个目标,第1天写1个代码,之后两天(第2、3天)里,每天写2个代码;之后3天(第4、5、6天)里,每天写3个代码……当连续N天每天写N个代码后,程序员会在之后的连续N+1天里,每天写N+1个代码。
给定一个天数,问从第一天开始的这些天里,程序员一共写了多少个代码。
输入
第1行是一个正整数n,表示测试案例的数量。
从第2行到第n+1行,每行有1个正整数,表示天数。
输出
针对每组测试案例,输出程序员写了多少个代码。
每组案例输出完都要换行。
样例输入
1
3
样例输出
5
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
while (n--)
{
int d,d0=0, sum = 0, cnt = 0;
cin >> d;
while (true)//无限循环
{
cnt++;//每进行一次循环,cnt的值增加1;
for (int i = 1; i <= cnt;i++)//第一次循环一次,以此类推
{
sum += cnt;//每次循环增加的代码数与进行循环的次数相同
d0++;//每进行一次循环,d0的值增加1
if (d== d0)//当d0的值与d的值相同,退出循环;
{
break;
}
}
if (d == d0)//需要再退出一层循环,输出结果;
break;
}
cout << sum<<endl;
}
return 0;
}