资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,数列求和求积,-,累加累乘递推法,基本累加,/,累乘问题,累加法:求和变量初值一般为,0,,每循环一次,求和变量自加一个数据,这样循环结束后,求和变量的值即为这些数据的和。,累乘法:累乘变量初值一般为,1,,每循环一次,累乘变量自乘一个数据,这样当循环结束的时候,累乘变量的值即为这些数据连乘的积。,基本累加,:,void main(),int,j,n,s=0;,scanf(%d,for(j=0;jn;j+),s=s+n;,printf(%d,s);,基本累乘:,void main(),int,j,n,s=1;,scanf(%d,for(j=0;jn;j+),s=s*n;,printf(“%d,s);,例,1:,输入,n,个,100,分制成绩(用整型),计算并输出平均成绩,要求输出精确到两位小数。,#define n 10 main(),double,av,=0;,int,score,i;,printf(Input,%d integers:,n);for(i=1;i=n;i+),scanf(%d,av,+=score;,av,/=n;,printf(av,=%.2fn,av,);,例,2,:已知,s=1!+2!+3!+n!,求当,s,首次超过,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);,若利用调用一个求阶乘的函数来求和,则可:,long,fac(int,n),long p=1;,int,i=1;,for(i=1;i=n;i+)p*=i;,return p;,main(),long s0=2000000,s=0;,int,n=1;,while(s=0.000001);,PI=4*PI;,printf(PI,=%fn,PI);,例,4:,求 的部分和。直到余项的首项的值小于,1.0e-6,。,void main(),float x,u=1.,s=0.;,int,n=0;,scanf(”%f,”,do s+=u;u*=x/(n+1);n+;,while(u=1.e-6);,printf(exp(x,)=%fn,s);,例,5:,求和,s=sin1+sin2+.+sin n(,求,s,cos,1+cos 2+,cos,n,与此,类似,),#include,void main(),int,i,n;,float s=0;,scanf(%d,for(i=1;i=n;i+),s+=sin(i);,printf,(s=%fn,s);,例,6:,计算,s=1+2/3-4/5+6/7-.+3998/3999,void 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);,例,8:,计算,fibonacci,数列,:1,1,2,3,5,8,13,,,的前,40,个数,main(),long a=1,b=1;,int,i;,for(i=1;i=20;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),#include,stdio.h,void main(),double p=1.0;,int,m,n,k;,printf(Input,n,m:);,scanf(%d%d,if(nn),printf(Input,data arent correct.n);return;if(n-mm)m=n-m;for(k=1;k=m;k+),p*=(double)(n-m+k)/k;,printf(c(%d,%d)=%.0fn,n,m,p);,例10,例10,#include,stdio.h,void main(),int,n,i;double a,x,y;,printf(,Input,x,n:,);,scanf(,%lf%d,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,s);,例,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,+,aaa,a,之值,其中,a,是一个数字。,例如:,2+22+222+2222+22222(,此时,n=5),n,由键盘输,入。,2.,有一分数序列:求出这个数列,的前,20,项之和。,
展开阅读全文