最大公约数

来源:互联网 发布:程序员保持年轻的秘诀 编辑:程序博客网 时间:2024/06/06 18:56

接着上一篇,还是在柴田望洋的明解C语言看到的,通过递归求最大公约数。先看代码:

/*求最大公约数*/#include<stdio.h>int fuc2(int x,int y) {   //  返回最大公约数(x>=y)return (y==0?x:fuc2(y,x%y));}int fuc1(int x,int y) {   //  求出最大公约数return (x>y?fuc2(x,y):fuc2(y,x));}int main() {int a,b;printf("请输入两个整数:\n");printf("整数1:");      scanf("%d",&a);printf("整数2:");      scanf("%d",&b);printf("两个整数最大公约数是%d\n",fuc1(a,b));return 0;}


运行结果:

思考一下求两个整数的最大公约数的方法。把两个整数当成一个长方形的长和宽,把这个长方形分成几个正方形,余下一个长方形,又把余下的这个长方形分成几个正方形,余下一个长方形,直到全部都为正方形为止。这时候最小正方形的边长就是两个整数的最大公约数了~

0 0
原创粉丝点击