习题4-2求幂级数展开的部分和(20分)
已知函数e^xex可以展开为幂级数1+x+x^2 /2! + x^3 /3! + \cdots + x^k /k! + \cdots1+x+x2/2!+x3/3!+⋯+xk/k!+⋯。现给定一个实数xx,要求利用此幂级数部分和求e^xex的近似值,求和一直继续到最后一项的绝对值小于0.00001。
输入格式:
输入在一行中给出一个实数x\in [0, 5]x∈[0,5]。
输出格式:
在一行中输出满足条件的幂级数部分和,保留小数点后四位。
输入样例:
1.2
输出样例:
3.3201
#include <stdio.h>#include <math.h>int factorial(int n);int main(){int i=1;double sum=1,t,x;scanf("%lf", &x);do{t=pow(x,i)/factorial(i);sum+=t;i++;printf("t = %f, sum = %f\n", t, sum);}while(t>=1E-5);printf("%.4f\n", sum);return 0;}int factorial(int n){if(n<=1)return 1;return n*factorial(n-1);}
习题4-3求分数序列前N项和(15分)
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。
输入样例:
20
输出样例:
32.66
#include <stdio.h>int main(){int i,n,fenzi=2,fenmu=1,tmp;double sum=0;scanf("%d", &n);for(i=1;i<=n;i++){sum+=1.0*fenzi/fenmu;tmp=fenzi;fenzi=fenzi+fenmu;fenmu=tmp;}printf("%.2f\n", sum);return 0;}
习题4-4特殊a串数列求和(20分)
给定两个均不超过9的正整数aa和nn,要求编写程序求a+aa+aaa++\cdots +aa\cdots aa+aa+aaa++⋯+aa⋯a(nn个aa)之和。
输入格式:
输入在一行中给出不超过9的正整数aa和nn。
输出格式:
在一行中按照“s = 对应的和”的格式输出。
输入样例:
2 3
输出样例:
s = 246
#include <stdio.h>int main(){int i,a,n,sum=0,t=0;scanf("%d %d", &a, &n);for(i=1;i<=n;i++){t=t*10+a;sum=sum+t;printf("t = %d\n", t);}printf("S = %d\n", sum);return 0;}
如果觉得《求幂级数展开的部分和 / 求分数序列前N项和 / 特殊a串数列求和》对你有帮助,请点赞、收藏,并留下你的观点哦!