电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

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

c语言典型问题处理方法小结_第1页
1/24
c语言典型问题处理方法小结_第2页
2/24
c语言典型问题处理方法小结_第3页
3/24
下载后可任意编辑c 语言典型问题处理方法小结一、循环问题(1)、数论问题1、求素数 for(i=2;i<=a;i++) if(a%i==0) break; if (a==i) printf("yes\n"); elseprintf("no\n");素数概念:对于某个整数 a>1,假如它仅有平凡约数 1 和 a,则我们称 a 为素数(或质数)。整数 1 被称为基数,它既不是质数也不是合数。整数 0 和所有负整数既不是素数,也不是合数。 2、求最大公约数和最小公倍数a、 if(a>b) { t=a; a=b; b=t; } for(i=a;i>=1;i--) if(a%i==0&&b%i==0) break; printf("largest common divisor:%d\n",i); printf("least common multiple:%d\n",(a*b)/is);b、辗转相除法求解 a1=a; b1=b; while(a%b!=0) { t=a%b; a=b; b=t; } printf("largest common divisor:%d\nleast common multiple:%d",b,a1*b1/b);3、求完数 一个数假如恰好等于它的因子之和,这个数就称为“完数”。 例如:6 的因子为 1、2、3,而 6=1+2+3,因此 6 是“完数”。第一个 if 推断是否能被 2,3,4……直到本身整除。第二个 if 推断是否只能被本身整除。下载后可任意编辑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("%d\t",a); }4、分解质因数 将一个整数写成几个质因数的连乘积,如: 输入 36,则程序输出36=2*2*3*3 。解一、main(){ int a,z,i; clrscr(); scanf("%d",&a); loop: for(z=2;z<=a;z++){for(i=2;i<=z;i++) if(z%i==0) break; if(z==i) if(a%z==0) { k++; if(k==1) printf("%d=%d",a1,z); else printf("*%d",z); a/=z; goto loop; }}}解二:main() { int n, k=2, isfirst=1; printf("Input n="); scanf("%d",&n);注意 S=0 所放的位置看似简单,但要自己完整地写出来还真不容易!!!竟然还动用了 goto 语句,正好可以熟悉一下 goto 语句的用法!!!推断是否为质数推断是否为 a 的质因数推断下一个数开始有要重新从 2开始了。所以用 loop 语句回到 for 语句,这是 for 语句仍从 2 初始化。从 2 开始的原则不变,变的是 a 的值。用计数器来解决每行输入不同的问题。下载后可任意编辑 while(k<=n) if(n%k==0) { if(isfirst) { printf("%d=%d", n, k); isfirst=0; } else printf("*%d",k); n/=k; } else k++; printf("\n");}5、从键盘输入两个整数...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

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

您可能关注的文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部