问题及代码:
/*Copyright(c)2016,烟台大学计算机学院
all rights reserved.
作者:曹欣宇
完成日期:2016年11月20日
题目描述
用递归函数求最大公约数
输入
两个正整数m n
输出
m,n的最大公约数
样例输入
5 15
样例输出
5
*/
#include <stdio.h>
int gcd(int m, int n);
int main()
{
int m,n;
scanf("%d %d", &m, &n);
printf("%d\n", gcd(m,n));
return 0;
}
int gcd(int m, int n)
{
if (n==0)
return m;
else
return gcd(n,m%n);
}
运行结果:
知识点总结:通过学习,进一步巩固了递归函数。
学习心得:曾经用循环编写的辗转相除法,现在用递归函数,体现出递归和循环的相似性。