最大公约数之迭代解法.

原创 2013年12月04日 19:29:27
/*
 * Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作    者: 李家豪
* 完成日期:2013 年10月23日
* 版 本 号:v1.0
* 问题描述:分别用非递归函数和递归函数,用辗转相除法求两个正整数a和b的
            最大公约数,并体会迭代法和递归法在处理问题上各自的思路。
* 样例输入:
* 样例输出:
* 问题分析:
*/
//迭代解法
#include "iostream"
using namespace std;
int gcd(int x, int y);
int main()
{
	int m,n;
	cout<<"输入两个自然数: ";
	cin>>m>>n;
	cout<<"最大公约数:";
	cout<<gcd(m,n)<<endl;
}


int gcd(int a, int b)
{
	int t,r;
	if (a < b)
		t=a,a=b,b=t;  
	while (b!= 0)   
	{
		r=a%b;
		a=b;
		b=r;
	}
	return a;
}


运行结果:

体会心得: 加油~~~

相关文章推荐

迭代和递归(Python)--乘方、最大公约数、汉诺塔、斐波那契、回文字符串

1.迭代 def iterPower(base,exp): result=1.0 while exp>0: result*=base exp-=1 ...

最大公约数与最小公倍数之三种解法

(一)采用“辗转相除法+介质交换法”#include int Max(int a,int b);//最大公约数函数的声明 int main() { printf("*******欢迎进入**...

最大公约数问题的优化解法

写一个程序,求两个正整数的最大公约数(Greatest Common Divisor,GCD)。如果两个整数都很大,有什么简单的算法吗?     (问题及思路来自于《编程之美》2.7节) 1. 辗...

最大公约数和最小公倍数及其应用(Go语言解法)

最大公约数(greatest common divisor) 欧几里得辗转相除法: gcd(x,y)表示x和y的最大公约数 进入运算时:x!=0,y!=0,本质上就是不断转换成求等价更小数的最大...
  • WAPWO
  • WAPWO
  • 2013年05月19日 08:44
  • 1310

最大公约数的基本解法和辗转相除法

一、从2开始一直到两个数中最大的一个进行取余运算 代码: package com.im;import java.util.Scanner;public class Demo59 {public s...

编程之美-2.7最大公约数问题java解法

编程之美-最大公约数问题java解法 包括五种方法,最后有一个判断奇偶数的方法isEven(); package code.beauty.fungame; public clas...

《编程之美》求两个大整数的最大公约数问题的一般解法

#include #include #define MAX 100 #define c 1       /*这是控制程序调试用的代码,当c=0时可以注释代码*/ #if c char *big2S...

数字问题之最大公约数问题全解法归纳<Java实现>

/** * 最大公约数问题 * @author Sking 1.辗转相除法: 用f(x,y)表示x和y的最大公约数,取k=x/y,b=x%y,则x=ky+b, 如果一个数能够同时整除x和y,则必须...

最大公约数的迭代算法

  • 2012年12月27日 12:33
  • 207B
  • 下载

迭代法求两数最大公约数(函数)

上机内容:C++程序的编写和运行 上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程 我的程序:/* Copyright (c) 2013, 烟台大学计算机学院 * All ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:最大公约数之迭代解法.
举报原因:
原因补充:

(最多只允许输入30个字)