任务描述
编写函数,函数的形式参数为两个正整数a和b,函数返回a与b的最大公约数,要求用递归方式实现。主函数中输入两个整数m和n,输出m和n的最大公约数。
输入样例:
36 24
输出样例:
12
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
- 输入的两个整数 m 和 n。
- 接着,调用函数com,将 m 和 n 作为参数传递进去,并返回最大公约数结果。
- 在 com 函数内部,采用辗转相除法的思想,每次让 b 等于 a 对 b 取余的结果(即 a % b),然后递归地调用自身,直到最后 b 为 0 时,此时 a 的值就是最大公约数,直接返回 a 即可。
- 最后,在主函数中格式化输出得到的最大公约数结果,即完成了程序的执行。
代码
#include<stdio.h>
int com(int a,int b)
{
if(b==0)
return a;
else
return com(b,a%b);
}
int main( )
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d",com(m,n));
return 0;
}