题目描述
小明很喜欢吃薯条。他吃薯条的方式很特别:他第一次吃1根薯条,第二次吃2根薯条,第三次吃3根薯条,…,一旦小明吃到n根薯条时,下一次他就会吃1根薯条,然后再吃2根薯条。求m次后,小明吃的薯条总数。
输入
第一行输入T,表示有T组数据。
每组数据输入两个整数n,m(n大于0,m大于0)。
输出
对于每组数据,输出小明一共吃了几根薯条,占一行。
样例输入
2
1 3
2 3
样例输出
3
4
思路:
等差数列求和
代码
#include<iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,m;
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;
int s=0;
cin>>n>>m;
a=m%n;
b=m-a;
c=b/n;
d=(1+n)*n/2;
e=(1+a)*a/2;
s=c*d+e;
cout<<s<<endl;
}
return 0;
}