1.2.1
#include<iostream>
using namespace std;
double f(double x, int& n) {
double s = 1.0, t = 1.0;
n = 1;
while (fabs(t) > 0.000001) {
t = t * x / n; s += t; //注意这里级数求和的技巧,没有直接计算“x的次方”和“n的权”
//这两个很容易超出表示范围的数字,而是每一项在上一项t的基础上增加一点x/n。
n++;
}
return s;
}
int main() { //测试
double x=40;
int n;
cout << f(x, n) << endl;
}
1.2.2
#include<iostream>
using namespace std;
//暴力枚举求所有子序列之和的最大值
int maxsubsequence(int a[], int n) {
int max = -99999;
for (int k = n; k >= 1; k--) {
for (int i = 0; i < n - k + 1; i++) {
int sum = 0;
for (int j = i; j < i + k; j++) sum += a[j];
if (max < sum)max = sum;
}
}
return max;
}
int main() { //测试
int a[1000]{1,-1,1,-1,-1,1,1,1,1,1,7,-1,-1,1,-1,1,-1,7,9};
int n=19;
cout<< maxsubsequence(a,n) << endl;
}