康复题21
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.
Examples
Input
4Output
2Input
5Output
-3Note
f(4)?=??-?1?+?2?-?3?+?4?=?2
f(5)?=??-?1?+?2?-?3?+?4?-?5?=??-?3
問題分析;注意n很大要用long long int,利用等差數列求和公式
AC代碼:
#include<iostream> using namespace std; int main() {long long int n,a,b,c;while (cin >> n){if (n % 2 == 0){c = n / 2;a = c * 2 + c * (c - 1);b = c + c * (c - 1);cout << a - b << endl;}else{c = (n - 1) / 2;a = c * 2 + c * (c - 1);b = c + c * (c - 1)+n;cout << a - b << endl;}} }?
總結
- 上一篇: 跷跷板打一成语是什么 跷跷板是什么成语呢
- 下一篇: 仁义礼智信温良恭俭让是什么意思 仁义礼智