多多是一只小菜鸟,都说笨鸟先飞,多多也想来个菜鸟先飞。于是它从0点出发,一开始的飞行速度为1m/s,每过一个单位时间多多的飞行速度比上一个单位时间的飞行速度快2m/s,问n(0<n<10^5)个单位时间之后多多飞了多远?
输入格式
先输入一个整数T表示有几组数据。每组数据输入一个n,表示多多飞行的时间。
输出
输出多多飞行了多远,因为数字很大,所以对10000取模。
样例输入
2
1
2
样例输出
1
4
此题很容易整型溢出
我开始时这么写的:
#include<iostream>
using namespace std;
int main()
{
long long t,n,a=0,i;
cin>>t;
while (cin>>n){
int sum=0,d=1,j;
for (i=1;i<=n;i++){
sum=(sum+d);
d++;
d++;
if (i==n){
cout<<sum<<endl;这样写会整型溢出 出现负值
break;
}
}
a++;
if (a==t)
break;
}
return 0;
}
源代码如下:
#include<iostream>
using namespace std;
int main()
{
long long t,n,a=0,i;
cin>>t;
while (cin>>n){
int sum=0,d=1,j;
for (i=1;i<=n;i++){
sum=(sum+d)%10000; //一开始就对它取模 这样就不会溢出了
d++;
d++;
if (i==n){
cout<<sum<<endl;
break;
}
}
a++;
if (a==t)
break;
}
return 0;
}