题目描述 点击这里
对于正整数n,k,我们定义这样一个函数f,它满足如下规律
现在给出n和k,你的任务就是要计算f(n,k)的值。
输入
首先是一个整数T,表示有T组数据
接下来每组数据是n和k(1<=n,k<=108)
输出
打印出f(n,k)的值,每个输出单独占一行
样例输入
3
1 1
2 1
3 1
样例输出
-1
1
-2
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
long long T;
cin>>T;
while(T--)
{
long long n,i,j,k,zu,dui,f,sum=,s;
cin>>n>>k;
zu=n/k;
dui=zu/;
sum=dui*k*k;
s=n-dui**k;
f=+dui**k;
if(s<=k)
{
for(i=;i<s;i++)
{
sum-=f;
f++;
}
}
else
{
for(i=;i<k;i++)
{
sum-=f;
f++;
}
for(i=;i<s-k;i++)
{
sum+=f;
f++;
}
}
cout<<sum<<endl;
}
}