数列求和求积_第1页
数列求和求积_第2页
数列求和求积_第3页
数列求和求积_第4页
数列求和求积_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数列求和求积: - 累加累乘递推法 基本累加/累乘问题 累加法:求和变量初值一般为0,每循环一次,求和变量自加一个数据,这样循环结束后,求和变量的值即为这些数据的和。 累乘法:累乘变量初值一般为1,每循环一次,累乘变量自乘一个数据,这样当循环结束的时候,累乘变量的值即为这些数据连乘的积。 niniinpins11.321.321基本累加: void main() int j,n,s=0; scanf(“%d”,&n);for(j=0;jn;j+)s = s+n;printf(“%d”, s); 基本累乘:基本累乘:void main() int j,n,s=1; scanf(“%d”

2、,&n);for(j=0;jn;j+)s = s*n;printf(“%d”, s); 例1: 输入n个100分制成绩(用整型),计算并输出平均成绩,要求输出精确到两位小数。 #include “stdio.h”#define n 10void main() double av=0; int score,i;printf(“Input %d int numbers:”, n);for(i=1; i=n; i+) scanf(“%d”, &score); av+=score; av/=n;printf(“av=%.2fn”,av);例2:已知s=1!+2!+3!+n! ,求当s首

3、次超过 2,000,000时的 n 和 s 的值void main()long n=1, an=1;long s=0;while(s2000000)an=an*n;s=s+an;n+;printf(“%ld %ld”,s,n);例3:用公式 求 的近似值,直到余项的首项绝对值小于10-6为止#include void main ( ) float PI=0., m=1., i=1.; int j= -1; do PI=PI+m; i=i+2; m=j/i; j= - j; while (fabs (m)= 0.000001); PI=4*PI; printf(“PI=%fn”, PI);.71

4、513114例4:求 的部分和。直到余项的首项的值小于1.0e-6 void main ( ) float x, u=1., s=0.; int n=0; scanf(”%f”, &x); do s+ = u; u*= x/(n+1); n+; while (u=1.e-6); printf(“exp(x)=%fn”, s ); .!.! 212nxxxenx例5: 求和 s=sin1+sin2+.+sin(n)(求scos 1+cos 2+cos n 与此类似)#include void main ( )int i,n; float s=0;scanf(“%d”,&n); f

5、or ( i=1; i=n; i+) s+=sin(i); printf (“s=%fn”, s );例6: 计算 s = 1+2/3 - 4/5+6/7 - .+3998/3999void main()int k;float s=1.;float u=1.;for(k=1; k1e-6) s+=a; k+=2; a*=-x*x/k/(k-1); printf(“s=%.6fn”,s);! 6! 4! 21)cos(642xxxxs例8: 计算 fibonacci 数列:1,1,2,3,5,8,13,的前40个数main()long a=1, b=1; int i;for(i=1; i=20;

6、 i+)printf(“%16ld %16ld”, a, b);if(i%2=0) printf(“n”);a=b+a;b=a+b;例9: 输入n, m, 计算组合数 P=C(n, m) mkmnkkmnmnmnC1)!( !#include “stdio.h”void main()double p=1.0; int m,n,k;printf(“Input n,m:”); scanf(“%d%d”, &n, &m);if(n0|mn) printf(“Input data arent correct.n”); return; if(n-mm) m=n-m; for(k=1; k

7、=m; k+) p*=(double)(n-m+k)/k; printf(“c(%d,%d)=%.0fn”, n, m, p);例例10#include “stdio.h”void main() int n, i; double a, x, y;printf(“Input x,n:”); scanf(“%lf%d”, &x, &n);printf(“Input a0, a1,a%dn, n);y=0;for(i=0;i=1e-5) s=s+m; i=i+1; j=-j; f=f*x*x; f1=f1+2; f2=f2*i; m=j*f(f1+f2); printf(“s=%fn

8、”,s);.! 3*7!2*5! 1*3)(753xxxxxs例12:输入一行 16 进制字符串,变成长整数输出 #include “stdio.h”void main()long y=0; int x=16, a; char c;printf(“Input a hex number:”); while(1) c=getchar(); if(c=n) break;if(c=0&c=a&c=A&c=Z) a=c-55;else break;y=y*x+a;printf(“y=%ldn”,y); 1. 求s=a+aa+aaa+aaaa之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。2. 有一分数序列: 求出这个数列的前20项之和。,.1321,813,58,35,23,12void main(int a, n, count=1, sn=0, tn=0;printf(“input a and n:”);scanf(“%d %d”, &a, &n);printf(“a=%d, n=%dn”, a, n);while(count =n)tn=tn+a;sn=sn+tn;a=a*10;+count;printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论