最大公约数

接着上一篇,还是在柴田望洋的明解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;
}


 
 

运行结果:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值