题目链接:http://codeforces.com/contest/1077/problem/A
题意:一只青蛙第一次会向右跳am,第二次会向左跳bm,第三次向右跳am,第四次会向右跳bm……,给你a和b,还有一个n。n表示跳n次。问n次之后青蛙的位置。
题解:模拟这个过程会超时,嗯判断n是奇数还是偶数,偶数就(a-b)*(n/2),奇数就是 (a-b)*(n/2) + a.
代码如下:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5;
int main(){
int z;
scanf("%d",&z);
while(z--){
long long a,b,k;
scanf("%lld%lld%lld",&a,&b,&k);
int temp = a - b;
if(k%2 == 1){
cout << (k+1)/2*temp + b << endl;
}
else {
cout << k/2* temp << endl;
}
}
}