题目链接:http://codeforces.com/problemset/problem/486/A
A. Calculating Function
time limit per test:1 second
memory limit per test:256 megabytes
input:standard input
output:standard output
For a positive integer n let’s define a function f:
f(n) = - 1 + 2 - 3 + .. + ( - 1)nn
Your task is to calculate f(n) for a given integer n.
Input
The single line contains the positive integer n (1 ≤ n ≤ 1015).
Output
Print f(n) in a single line.
Sample test(s)
Input
4
Output
2
Input
5
Output
-3
Note
f(4) = - 1 + 2 - 3 + 4 = 2
f(5) = - 1 + 2 - 3 + 4 - 5 = - 3
解题思路:n为偶数时,相邻每两项的差值为1;n为奇数时,第一项除外,接下来相邻每两项的差值为-1。
用时:31 ms
#include<iostream>
typedef __int64 tt;
using namespace std;
int main()
{
tt n;
while(cin>>n)
{
if(n%2==0) cout<< n/2<<endl;
else cout<< -n/2-1<<endl;
}
return 0;
}