c语言典型问题处理方法小结

c语言典型问题处理方法小结

ID:1382228

大小:128.50 KB

页数:15页

时间:2017-11-11

c语言典型问题处理方法小结_第1页
c语言典型问题处理方法小结_第2页
c语言典型问题处理方法小结_第3页
c语言典型问题处理方法小结_第4页
c语言典型问题处理方法小结_第5页
资源描述:

《c语言典型问题处理方法小结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、c语言典型问题处理方法小结一、循环问题(1)、数论问题1、求素数for(i=2;i<=a;i++)if(a%i==0)break;if(a==i)printf("yes");else第一个if判断是否能被2,3,4……直到本身整除。第二个if判断是否只能被本身整除。printf("no");素数概念:对于某个整数a>1,如果它仅有平凡约数1和a,则我们称a为素数(或质数)。整数1被称为基数,它既不是质数也不是合数。整数0和所有负整数既不是素数,也不是合数。2、求最大公约数和最小公倍数a、if(a>b){t=a;a=b;b

2、=t;}for(i=a;i>=1;i--)if(a%i==0&&b%i==0)break;printf("largestcommondivisor:%d",i);printf("leastcommonmultiple:%d",(a*b)/is);b、辗转相除法求解a1=a;b1=b;while(a%b!=0){t=a%b;a=b;b=t;}printf("largestcommondivisor:%dleastcommonmultiple:%d",b,a1*b1/b);3、求完数一个数如果恰好等于它的因子之和,这个数

3、就称为“完数”。例如:6的因子为1、2、3,而6=1+2+3,因此6是“完数”。for(a=1;a<=1000;a++){s=0;for(i=1;i<=a;i++)if(a%i==0){s+=i;if(s>=a)break;}if(s==a)printf("%dt",a);注意S=0所放的位置}4、分解质因数将一个整数写成几个质因数的连乘积,如:输入36,则程序输出36=2*2*3*3。解一、看似简单,但要自己完整地写出来还真不容易!!!竟然还动用了goto语句,正好可以熟悉一下goto语句的用法!!!main(){inta,

4、z,i;clrscr();scanf("%d",&a);判断下一个数开始有要重新从2开始了。所以用loop语句回到for语句,这是for语句仍从2初始化。从2开始的原则不变,变的是a的值。loop:for(z=2;z<=a;z++){判断是否为质数for(i=2;i<=z;i++)if(z%i==0)break;判断是否为a的质因数if(z==i)if(a%z==0){k++;if(k==1)printf("%d=%d",a1,z);用计数器来解决每行输入不同的问题。elseprintf("*%d",z);a/=z;gotolo

5、op;}}}解二:main(){intn,k=2,isfirst=1;printf("Inputn=");scanf("%d",&n);while(k<=n)if(n%k==0){if(isfirst){printf("%d=%d",n,k);isfirst=0;}elseprintf("*%d",k);n/=k;}elsek++;printf("");}5、从键盘输入两个整数,输出这两个整数的商的小数点后所有1000位整数for(i=1;i<=1000;i++){t=a%b;主要体会除法运算中小数形成的原因解决这类题目从

6、本质出发printf("%d",t*10/b);a=t*10;}printf("");6、编程计算并输出两个带分数的差。带分数就是由一个整数和一个真分数合成的数,两个带分数(整数、分子、分母均大于0)从键盘输入,且带分数1大于带分数2,输入格式为:整数1[分子1/分母1],整数2[分子2/分母2]。差要求化简,整个输出样式为(如差为整数,则无分数部分,如差的整数为0,则无整数部分):整数1[分子1/分母1]-整数2[分子2/分母2]=整数[分子/分母]例如:输入:12[6/35],8[3/5]输出:12[6/35]-8[3/

7、5]=3[4/7]又如:输入:6[2/3],4[12/18]输出:6[2/3]-4[12/18]=2又如:输入:9[7/8],9[3/8]输出:9[7/8]-9[3/8]=[1/2]main(){intz1,fz1,fm1,fz1x,z2,fz2,fm2,fz2x,z,fz,fm,fzx,i;scanf("%d[%d/%d],%d[%d/%d]",&z1,&fz1,&fm1,&z2,&fz2,&fm2);fz1x=z1*fm1+fz1;fz2x=z2*fm2+fz2;fm=fm1*fm2;fz=fz1x*fm2-fz2x*fm1

8、;for(i=fm;i>=2;i--)if(fm%i==0&&fz%i==0){fz/=i;fm/=i;}z=fz/fm;fzx=fz%fm;if(fzx==0)printf("%d[%d/%d]-%d[%d/%d]=%d",z1,fz1,fm1,z2,fz

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

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

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