本文主要是介绍求幂级数展开的部分和 / 求分数序列前N项和 / 特殊a串数列求和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
习题4-2 求幂级数展开的部分和 (20分)
已知函数ex可以展开为幂级数1+x+x2/2!+x3/3!+⋯+xk/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。
输入格式:
输入在一行中给出一个实数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的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
输入格式:
输入在一行中给出不超过9的正整数a和n。
输出格式:
在一行中按照“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串数列求和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!