任务:
对于正整数 n,我们定义函数f:
f(n) = - 1 + 2 - 3 + .. + ( - 1)^n*n
计算f(n)给定的整数 n。
for超过时限我先写了:
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
int sum(0), n;
cin >> n;
for (int i(1); i <= n; ++i)
sum += pow(-1, i)*i;
cout << sum;
system("pause");
return 0;
}
然后递归超出内存限制:
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int n, sum(0), i(1);
void rek()
{
while (i <= n)
{
sum += pow(-1, i)*i;
++i;
rek();
}
}
int main()
{
cin >> n;
rek();
cout << sum;
system("pause");
return 0;
}
帮助优化代码(测试n = 1000000000)。
只是想想怎么样?每对给出数字 1 的是什么?
所以结果是
嗯,代码