- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数列求和/求积----- 累加/累乘/递推法 基本累加/累乘问题 累加法:求和变量初值一般为0,每循环一次,求和变量自加一个数据,这样循环结束后,求和变量的值即为这些数据的和。 累乘法:累乘变量初值一般为1,每循环一次,累乘变量自乘一个数据,这样当循环结束的时候,累乘变量的值即为这些数据连乘的积。 基本累加: 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, n); 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, score); av+=score; } av/=n; printf(av=%.2f\n, 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(ss0) { s+=fac(n); n++; } printf(n=%d, s= %ld, n, s); } 例3:用公式 求 ? 的近似值,直到余项的首项绝对值小于10-6为止 #include math.h 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=%f\n, PI); } 例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)=%f\n, s ); } 例5: 求和 s=sin1+sin2+...+sin n(求s=cos 1+cos 2+…+cos n 与此类似) #include math.h void main ( ) { int i, n; float s=0; scanf(%d, n); for ( i=1; i=n; i++) s+=sin(i); printf (s=%f\n, 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; k2000; k++) { s=s+u*(2*k)/(2*k+1); u= - u; } } 例7: 输入x计算以下算式,要求计算到最后一项小于是10-6时停止计算,输出计算结果 #include math.hvoid main(){
文档评论(0)