`
yunchow
  • 浏览: 328069 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

用递归求两个数的最大公约数

阅读更多
/************************
* 文件名:GongYueShu.cpp
* 功  能:计算两个数的最大公约数
* 作  者:若风恶魔
* 时  间:09/5/13
************************/
#include <iostream.h>
#define u32 unsigned int

u32 count(u32,u32);

int main(void)
{
	u32 x,y,flag;//此两数用于接收输入的两个正整数
	while(1)
	{
		cout<<"********************************************"<<endl;
		cout<<"请选择功能号:1 退出程序,其它 计算公约数"<<endl;
		cout<<"********************************************"<<endl;
		cout<<"功能号:";
		cin>>flag;
		switch(flag)
		{
		case 1:
			return 1;
		default:
			cout<<"请输入第两个数:"<<endl;
			cin>>x>>y;
			cout<<"x="<<x<<",y="<<y<<endl;
			cout<<"x,y的最大公约数是:"<<count(x,y)<<endl;
			break;
		}
	}
}
/************************
* 函数名:count
* 参  数:arg1:第一个数,arg2第二个数
* 功  能:计算两个数的最大公约数
* 作  者:若风恶魔
* 时  间:09/5/13
* 备  注:此函数用递归方法实现
************************/
u32 count(u32 arg1,u32 arg2)
{
	u32 tem;
	if(0==arg1%arg2)
		return arg2;   //递归函数出口
	else
	{
		tem = arg2;
		arg2 = arg1%arg2;
		arg1 = tem;
		count(arg1,arg2);//函数在此进行递归
	}
}

分享到:
评论
1 楼 night_stalker 2009-05-13  
unsigned gcd(unsigned a, unsigned b){
  return (b ? gcd(b, a % b) : a);
}

相关推荐

    Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例

    在计算机编程中,特别是在使用Python语言进行开发时,经常需要对两个数值进行最大公约数(GCD)和最小公倍数(LCM)的计算。最大公约数是指两个或多个整数共有约数中最大的一个,而最小公倍数是指能被两个或多个整数...

    递归算法求两个数的最大公约数

    ### 递归算法求两个数的最大公约数 #### 1. 递归方法解析 **递归算法**是一种解决问题的方法,其中函数通过调用自身来解决问题。递归算法的关键在于找到一个基本结束条件(base case),以及如何将问题分解成更小...

    用递归算法实现两个整数最大公约数的计算

    当b为0时,a即为两个数的最大公约数。 ### 分析给定的C++源代码 #### 主函数main() 在给定的C++代码中,首先引入了`iostream`头文件,用于输入输出操作。主函数`_tmain()`接收命令行参数,读入两个整数x和y,调用...

    求两数最大公约数求两数最大公约数

    在计算机科学和编程领域,"求两数最大公约数"是一个基本的问题,它涉及到数论和算法设计。最大公约数(Greatest Common Divisor,GCD)也被称为最大公因数,是两个或多个非零整数共有约数中最大的一个。在数学上,...

    递归法求解两数的最大公约数

    这是我自己做的ppt,关于递归法求解两数最大公约数的

    Java求两个数的最大公约数、最小公倍数.rar

    在Java编程语言中,求两个正整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)是常见的算法问题,这对于理解和掌握基本的数学运算以及编程技巧至关重要。本文将详细介绍...

    最大公约数的递归解法cpp

    最大公约数的递归解法,这是一个cpp程序,运行正常,是求输入的2个数的最大公约数的递归算法

    用递归函数求两个整数的最大公因子

    在C++中用函数递归调用的方法实现辗转相除法求两个整数的最大公因子。

    求两个数的最大公约数和最小公倍数

    System.out.println("两个数的最大公约数是: " + gcd(num1, num2)); System.out.println("两个数的最小公倍数是: " + lcm(num1, num2)); } } ``` 在这个程序中,`gcd`方法采用递归实现辗转相除法,而`lcm`方法则...

    c语言求两个数的最大公约数

    本主题将深入探讨如何使用C语言来计算两个整数的最大公约数(Greatest Common Divisor,GCD)。最大公约数是两个或多个非零整数共有的最大的正因子,它是数论中的基本概念,对于理解和处理数字关系至关重要。 辗转...

    求n个数的最大公约数

    下面是一个用C++实现的欧几里得算法求两个数最大公约数的示例: ```cpp int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); } ``` 接下来,我们要扩展这个函数,以计算n个数的最大公...

    初等数论中最大公约数、最小公倍数(递归实现)程序

    通过这些递归函数,我们可以高效地解决两个或多个数的最大公约数和最小公倍数问题。在实际应用中,为了提高效率和防止溢出,通常会采用迭代法或者更优化的算法,但递归实现对于理解概念和学习基础算法是非常有帮助的...

    算法:n个数的最大公约数

    将此定理扩展到求n个数的最大公约数,我们可以先求出前两个数的最大公约数,然后将结果与第三个数用辗转相除法计算,以此类推,直至处理完所有数。例如,对于三个数a, b, c,最大公约数可以通过以下步骤得到: 1. ...

    求两个正整数m、n的最大公约数 Java语言实现

    在IT领域,尤其是在编程与算法研究中,求解两个正整数的最大公约数(Greatest Common Divisor,简称GCD)是一项基础而重要的任务。本文将深入探讨如何使用Java语言来实现这一功能,并通过给定的代码片段进行分析,...

    求大整数的最大公约数

    本文件"求大整数的最大公约数"是用C++语言编写的一个大整数类,专门用于计算两个大整数的最大公约数(Greatest Common Divisor, GCD)。 大整数类通常基于数组或链表结构来存储多位数,以适应任意长度的整数。在这...

    VB 求多个数的最大公约数

    一种常见的方法是首先找到前两个数的最大公约数,然后将结果与下一个数求最大公约数,依此类推。例如,如果我们有三个数a、b和c,那么最大公约数可以表示为GCD(GCD(a, b), c)。这个过程可以递归地进行,直到处理完...

    C++ 递归 最大公约数与最小公倍数

    在这个C++程序中,我们使用递归方法来求解两个整数的最大公约数和最小公倍数。 首先,我们要理解递归的概念。递归是一种函数或过程调用自身的技术,通常用于解决具有重复结构的问题。在这里,我们通过递归函数`GCD`...

    欧几里德算法求解多个数的最大公约数

    这个例子中,`gcd_multiple`函数接收一个整数列表并返回它们的最大公约数,而`gcd`函数是求两个数最大公约数的递归实现。程序通过读取in.txt文件获取整数,然后计算最大公约数并写入out.txt文件。 了解了欧几里得...

    利用三种算法求最大公约数

    分解质因数法是通过将两个数分别分解为质因数,然后找出它们共同的质因数并相乘得到最大公约数。例如,12 = 2×2×3,18 = 2×3×3,它们的最大公约数是2×3=6。这种方法在处理大数时效率较低,因为分解质因数的...

Global site tag (gtag.js) - Google Analytics