闽高校计算机二级C语言常用算法

闽高校计算机二级C语言常用算法

ID:40506948

大小:94.98 KB

页数:29页

时间:2019-08-03

闽高校计算机二级C语言常用算法_第1页
闽高校计算机二级C语言常用算法_第2页
闽高校计算机二级C语言常用算法_第3页
闽高校计算机二级C语言常用算法_第4页
闽高校计算机二级C语言常用算法_第5页
资源描述:

《闽高校计算机二级C语言常用算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、常用算法1.求最大公约数与最小公倍数例1:求两个正数的最大公约数。⑴循环实现用辗转相除法,m、n是两个正整数,r是余数,用直到循环操作的流程图:#includeintmain(){intm,n,r;do{printf("Pleaseinputtowpositiveintegert:");scanf("%d%d",&m,&n);}while(m<=0

2、

3、n<=0);do{r=m%n;m=n;n=r;}while(r!=0);printf("Thegreatestcommandfactoris:%d",m);return0;}⑵函数递归调用实现用递

4、归算法求m与n的最大公约数。设求m和n最大公约数的函数为gcd(m,n),根据辗转相除求最大公约数的思想,其递归算法为:#includeintgcd(intm,intn);intmain(){intm,n;printf("Inputtownumber:");scanf("%d%d",&m,&n);printf("Greatestcommondivisorof%dand%d=%d",m,n,gcd(m,n));return0;}intgcd(intm,intn){intg;if(n==0)/*若除操作的余数为0*/g=m;/*则除数为最大公约

5、数*/elseg=gcd(n,m%n);/*上次除操作的除数和余数作参数递归调用gcd()函数*/returng;}2.求阶乘例2:求1!+2!+……+n!。⑴循环实现#includeintmain(void){inti,n;longs=0,p=1;printf("Inputainteger:");scanf("%d",&n);for(i=1;i<=n;i++){p*=i;s+=p;}printf("1!+2!+……+%d=%ld",n,s);return0;}⑵函数递归调用实现#includelongfact(intn){l

6、ongp;if(n==1)p=1;elsep=n*fact(n-1);returnp;}intmain(void){inti,n;longs=0,p=1;printf("Inputainteger:");scanf("%d",&n);for(i=1;i<=n;i++){s+=fact(i);}printf("1!+2!+……+%d=%ld",n,s);return0;}3.求素数例3:求3至1000间的全部素数。#include#includemain(){intm,i,k,n=0;shortprime;for(m=3;m<=1

7、000;m=m+2){prime=1;k=(int)(sqrt(m));for(i=2;i<=k;i++)if(m%i==0){prime=0;break;}if(prime){printf("%5d",m);n=n+1;}if(n==10){n=0;printf("");}}printf("");return0;}4.Fibonacii数列例4:求Fibonacci数列前20个数。这个数列有如下特点:第1、2个数为1、1,从第3个数开始,每个数是其前两个数和之和。即:1,1,2,3,5,8,13,21,……⑴循环实现#includemai

8、n(){longf1,f2;inti;f1=f2=1;for(i=1;i<=20;i++){printf("%-12ld%-12ld",f1,f2);/*右对齐占12字符*/if(i%2==0)printf("");f1=f1+f2;f2=f2+f1;}return0;}⑵函数递归调用实现#includeintf(inti){intfi;if(i==1

9、

10、i==2)fi=1;elsefi=f(i-1)+f(i-2);returnfi;}main(){inti;for(i=1;i<=20;i++){printf("%-12ld",f(i));/*

11、右对齐占12字符*/if(i%4==0)printf("");}return0;}5.整数各位数字的拆分例5:输入一个正整数,要求以相反的顺序输出该数各位。(1)用递归方法实现。#includevoidf(intn){if(n>0){printf("%d",n%10);f(n/10);}}intmain(){intn;printf("Inputainteger:");scanf("%d",&n);f(n);putchar('');return0;}例6:求一正长整型数的各位数字之和。(2)用递归算法实现#include

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。