求和(数学,等差数列)

求和
Time Limit: 1000 ms   Memory Limit: 64 MB
Total Submission: 64   Submission Accepted: 16
Description
对于正整数n,k,我们定义这样一个函数f,它满足如下规律
f(n,k=1)=-1+2-3+4-5+6...n
f(n,k=2)=-1-2+3+4-5-6...n
f(n,k=3)=-1-2-3+4+5+6...n
f(n,k=4)=-1-2-3-4+5+6+7+8...n
现在给出n和k,你的任务就是要计算f(n,k)的值。

Input
首先是一个整数T,表示有T组数据
接下来每组数据是n和k(1<=n,k<=100000000)

Output
打印出f(n,k)的值,每个输出单独占一行

Sample Input
Original Transformed
3
1 1
2 1
3 1

Sample Output
Original Transformed
-1
1
-2

Source
安徽省2015年“京胜杯”大学生程序设计竞赛


注意几点?1.数据大,用long long 2.数据大,用等差数列求和

 

比较合适!

 

#include
#include
using namespace std;
int main()
{
    long long n,sum,x,y,a,b,i,z;
    scanf("%lld",&n);
    while(n--)
    {
        sum=0;
        scanf("%lld%lld",&a,&b);
        x=a/(b*2);//有几组?
        y=a%(b*2);//余数
        sum+=b*b*x;//加上每组的数!
        //cout<<"x="<


 

你可能感兴趣的:(数学)