首页 > 其他分享 >54. 【中学】求最大公约数——递归

54. 【中学】求最大公约数——递归

时间:2022-12-23 10:23:40浏览次数:59  
标签:GCD 递归 int 54 最大公约数 文本

54. 【中学】求最大公约数——递归

 

请使用递归算法计算正整数n和m的最大公约数GCD(n,m)。

            = m             当 m<=n 且 n mod m =0
GCD(N,M) = GCD(m,n)   当n<m时
                  = GCD(m, n mod m)     其他

输入:
        
n和m

输出:
        n和m的最大公约数

  测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1 以文本方式显示
  1. 24 48↵
以文本方式显示
  1. 24↵
1秒 64M 0
测试用例 2 以文本方式显示
  1. 13 15↵
以文本方式显示
  1. 1↵
1秒 64M 0

【分析】:

他给的计算最大公约数的方法我没有看懂。不过高中数学有介绍过这相关的知识,可以用 更相减损之术 或 辗转相除法 来计算最大公约数

【代码】

#include <stdio.h>
int GCD(int n, int m);
int main() {
	int n, m;
	scanf("%d %d", &n, &m);
	printf("%d\n", GCD(n,m));
}
int GCD(int n, int m)
{
	if (m == 0) return n;
	else {
		if (m <= n) return GCD(m,n%m);
		else return GCD(m,n);
	}	
}

 

标签:GCD,递归,int,54,最大公约数,文本
From: https://www.cnblogs.com/alien-han/p/17000122.html

相关文章