目的:定义递归函数来求两个数的最大公约数
/*
目的:辗转相除法求最大公约数。
方法:函数的递归调用
*/
# include <stdio.h>
//首先定义一个递归函数,两个整型形参,返回最大公约数。
# 大数在右小数在左
int gcd(int a, int b)
{
if(b%a==0)
return a;
else
return gcd(b%a,a);
}
int main(void)
{
int num_1, num_2;
int res, temp;
printf("请输入两个整数,中间用空格隔开:");
scanf("%d %d", &num_1, &num_2);
if(num_1>num_2)//保证调用gcd函数时两个参数从小到大排列
{
temp=num_1;
num_1=num_2;
num_2=temp;
}
res=gcd(num_1, num_2);
printf("%d和%d之间的最大公约数是%d。", num_1, num_2, res);
return 0;
}
本文介绍了一种使用递归函数实现辗转相除法求解两整数最大公约数的方法。通过递归调用,实现了从大数到小数的辗转相除过程,最终返回两数的最大公约数。

1万+

被折叠的 条评论
为什么被折叠?



