文章目录
一、Calculating Function
总结
一、Calculating Function
本题链接:Calculating Function
题目:
A. Calculating Function
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
For a positive integer n let’s define a function f:
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
4
output
2
input
5
output
-3
Note
f(4) = - 1 + 2 - 3 + 4 = 2
f(5) = - 1 + 2 - 3 + 4 - 5 = - 3
本博客给出本题截图:
题意:输入一个整数,按照上述式子计算最后结果
AC代码
#include <iostream> using namespace std; typedef long long LL; int main() { LL a; cin >> a; if (a % 2) cout << -(a + 1) / 2 << endl; else cout << a / 2 << endl; return 0; }
总结
分析一下可以知道这个题暴力会TLE
,又没有什么可以优化的方式,显然是一个找规律的题目,打表输出一下就可以知道规律,下面提供一个打表代码
#include <iostream> using namespace std; typedef long long LL; LL f(LL n) { LL res = 0; for (int i = 1; i <= n; i ++ ) if (i % 2) res -= i; else res += i; return res; } int main() { LL a; while(cin >> a) cout << f(a) << endl; return 0; }