欢迎来到天天文库
浏览记录
ID:49608631
大小:37.01 KB
页数:5页
时间:2020-03-02
《c语言算法归纳.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言算法归纳1.递归法转换整数为字符voidconvert(intn){intt;if((t=n/10)!=0)convert(t);putch(n%10+'0');}2.判断素数intisPrime(intn){inti;for(i=2;i2、3、(year%400)==0)printf("%disaleapyear",year);elseprintf("%disnotaleapyear",year);4.求N的阶乘for(intt=1,i=2;i<=4、N;i++)t*=i;printf("%d",t);5.求m和n最大公约数和最小公倍数if(ab){t=a;a=b;b=t;}if(a>c){t=a5、;a=c;c=t;}if(b>c){t=b;b=c;c=t;}*若要求由大到小顺序输出,改'>'为'<'即可。9.求ax*x+b*x+c方程的解if(fabs(a)<=1e-6)printf("非二次方程");elsedisc=b*b-4*a*c;if(fabs(disc)<=1e-6)printf("有两相等实根:%f",-b/(2*a));elseif(fabs(disc)>1e-6){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("有两相异实根:%f和%f",x1,x2);}else{realpart=6、-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf("有两共轭复根:");printf("%f+%fi",realpart,imagpart);printf("%f-%fi",realpart,imagpart);}10.求Fibonacci数列(f(n)=f(n-1)+f(n-2))intf[N]={1,1};for(i=2;i7、emysqrt(doublex0){doublex1,y;x1=(x0+a/x0)/2.0;if(fabs(x1-x0)>0.00001)y=mysqrt(x1);elsey=x1;return(y);}512.求方程2*x*x*x-4*x*x+3*x-6的根(1)牛顿迭代法求方程在1.5附近的根(牛顿迭代公式:x(n+1)=x(n)-f(x(n))/f'(x(n)) 绝对误差<0.001)doublef(doublex0){doublex1,y;x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3);if(fabs(x1-x0)>0.8、001)y=f(x1);elsey=x1;return(y);}(2)二分法求方程在(-10,10)之间的根 (绝对误差<0.001)/*子程序部分*/floatf(floatx) {return(2*x*x*x-4*x*x+3*x-6);}-------/*主程序部分*/floatm=-10,n=10;r=(m+n)/2;while(f(r)*f(n)){if(f(r)*f(n)<0)m=r;elsen=r;if(fabs(n-m)<0.001)break;r=(m+n)/2;}printf("%f",r);/*r即为根*/(3)弦截法求根 /*子程序部分*/fl9、oatf(floatx) {return(2*x*x*x-4*x*x+3*x-6);}floatxpoint(floatx1,floatx2);{return(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));}floatroot(floatx1,floatx2){inti;floatx,y,y1;y1=f(x1);do{x=xpoint(x1,x2);y=f(x);if(y*y1>0)5{y1=y;x1=x;}elsex2=
2、
3、(year%400)==0)printf("%disaleapyear",year);elseprintf("%disnotaleapyear",year);4.求N的阶乘for(intt=1,i=2;i<=
4、N;i++)t*=i;printf("%d",t);5.求m和n最大公约数和最小公倍数if(ab){t=a;a=b;b=t;}if(a>c){t=a
5、;a=c;c=t;}if(b>c){t=b;b=c;c=t;}*若要求由大到小顺序输出,改'>'为'<'即可。9.求ax*x+b*x+c方程的解if(fabs(a)<=1e-6)printf("非二次方程");elsedisc=b*b-4*a*c;if(fabs(disc)<=1e-6)printf("有两相等实根:%f",-b/(2*a));elseif(fabs(disc)>1e-6){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("有两相异实根:%f和%f",x1,x2);}else{realpart=
6、-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf("有两共轭复根:");printf("%f+%fi",realpart,imagpart);printf("%f-%fi",realpart,imagpart);}10.求Fibonacci数列(f(n)=f(n-1)+f(n-2))intf[N]={1,1};for(i=2;i7、emysqrt(doublex0){doublex1,y;x1=(x0+a/x0)/2.0;if(fabs(x1-x0)>0.00001)y=mysqrt(x1);elsey=x1;return(y);}512.求方程2*x*x*x-4*x*x+3*x-6的根(1)牛顿迭代法求方程在1.5附近的根(牛顿迭代公式:x(n+1)=x(n)-f(x(n))/f'(x(n)) 绝对误差<0.001)doublef(doublex0){doublex1,y;x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3);if(fabs(x1-x0)>0.8、001)y=f(x1);elsey=x1;return(y);}(2)二分法求方程在(-10,10)之间的根 (绝对误差<0.001)/*子程序部分*/floatf(floatx) {return(2*x*x*x-4*x*x+3*x-6);}-------/*主程序部分*/floatm=-10,n=10;r=(m+n)/2;while(f(r)*f(n)){if(f(r)*f(n)<0)m=r;elsen=r;if(fabs(n-m)<0.001)break;r=(m+n)/2;}printf("%f",r);/*r即为根*/(3)弦截法求根 /*子程序部分*/fl9、oatf(floatx) {return(2*x*x*x-4*x*x+3*x-6);}floatxpoint(floatx1,floatx2);{return(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));}floatroot(floatx1,floatx2){inti;floatx,y,y1;y1=f(x1);do{x=xpoint(x1,x2);y=f(x);if(y*y1>0)5{y1=y;x1=x;}elsex2=
7、emysqrt(doublex0){doublex1,y;x1=(x0+a/x0)/2.0;if(fabs(x1-x0)>0.00001)y=mysqrt(x1);elsey=x1;return(y);}512.求方程2*x*x*x-4*x*x+3*x-6的根(1)牛顿迭代法求方程在1.5附近的根(牛顿迭代公式:x(n+1)=x(n)-f(x(n))/f'(x(n)) 绝对误差<0.001)doublef(doublex0){doublex1,y;x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3);if(fabs(x1-x0)>0.
8、001)y=f(x1);elsey=x1;return(y);}(2)二分法求方程在(-10,10)之间的根 (绝对误差<0.001)/*子程序部分*/floatf(floatx) {return(2*x*x*x-4*x*x+3*x-6);}-------/*主程序部分*/floatm=-10,n=10;r=(m+n)/2;while(f(r)*f(n)){if(f(r)*f(n)<0)m=r;elsen=r;if(fabs(n-m)<0.001)break;r=(m+n)/2;}printf("%f",r);/*r即为根*/(3)弦截法求根 /*子程序部分*/fl
9、oatf(floatx) {return(2*x*x*x-4*x*x+3*x-6);}floatxpoint(floatx1,floatx2);{return(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));}floatroot(floatx1,floatx2){inti;floatx,y,y1;y1=f(x1);do{x=xpoint(x1,x2);y=f(x);if(y*y1>0)5{y1=y;x1=x;}elsex2=
此文档下载收益归作者所有