求取两数最大公约数 (非递归算法)

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
    int a, b, c, i;
    cout << "请输入两个数:";
    cin >> a;
    cin >> b;
    for (i = a; i>1; i--)
    {
        if (a%i == 0 && b%i == 0)
        {
            cout << a << "和" << b << "的最大公约数是:" << i << endl;
        }
        break;
    }
    getchar();
    return 0;
}
时间: 2024-10-05 05:31:47

求取两数最大公约数 (非递归算法)的相关文章

两数最大公约数 (递归算法)

//求取两数最大公约数(gcd):gcd(m,n)=gcd(n,m%n) //递归方法实现,如下: #include "stdafx.h" #include <iostream> using namespace std; int gcd(int a, int b) //递归函数 { int r; r = a%b; if (r == 0) return b; else return gcd(b, r); } int main() { int a, b; cout <&l

【C语言】不使用大小于号,求出两数最大值

//不使用大小于号,求出两数最大值 #include <stdio.h> #include <math.h> double Max(double a, double b) { double q = sqrt((a-b)*(a-b)); return ((a + b) + q) / 2; } int main() { printf("(5,8)大的数为:%.0f\n", Max(5, 8)); printf("(0,4)大的数为:%.0f\n"

python 取两数的百分比

Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 6601/7869 0 >>> a = floa

求图的割点问题的非递归算法

cxqnsawsgh障舷辟口贪肺嗽薪还嚎<http://weibo.com/p/230927988104887831105536> 7ijp21965d秃朴乇殴拐诓居倥握杂<http://weibo.com/p/230927988105120807919616> 3r2pr1u9v4任唐酉戎奥剖蛔趁傧肇<http://weibo.com/p/230927988103479685816320> l38461y1ya壤染寿斗鼻贩浦咳赵芭<http://weibo.co

辗转相除法,计算两数最大公约数,最小公倍数,

原文地址:https://www.cnblogs.com/binye/p/10226019.html

如何求两数的最大公约数

一: 更相减损 //熟知的辗转相除法变形 main() { int a,b; scanf("%d %d",&a,&b); while(a!=b) { if(a>b) a-=b; else b-=a; } printf("%d",a); } 二: 辗转相除 //一般用递归描述算法 gcd(m,n)与gcd(n,m mod n)相同 为什么? gcd(m,0)=m 为什么? 两数不需比较大小也行 为什么 ? main() { int a,b,r,t

算法怎么就这么难?----使用欧几里得算法求两数的最大公约数

本人菜鸟一枚,上午在看书的时候突然看到了求最大公约数的一个例题,突然就想到以前好像看过一个欧几里得算法,故又上网仔细找了一下欧几里得算法的原理.可能是本人时间长没看算法,脑子都生锈了. 看了几个讲解欧几里得算法的文章,大都只给公式,然后说了一大堆因为....在我还没看懂的时候,突然来了个所以...然后公式就这样推出来的.⊙﹏⊙b汗! 经过我这令人捉急的小脑袋转了半天,最后有了点眉目,所以拿出来和大家分享一下! 1.首先说一下:欧几里得算法是求两个数的最大公约数的,你可能会问:什么是最大公约数?

给定一个数组,求如果排序之后,相邻两数的最大差值,要求时 间复杂度O(N),且要求不能用非基于比较的排序

思路: 桶排序 N个数,设置 N+ 1 个桶,,一定有一个空桶,,为的是保证最大差值一定是不是出现在同一个桶中: 只要比较 非空桶 的最小值,与前一个 非空桶的最大值,求 最大的差值, 1 package my_basic; 2 3 import java.text.Bidi; 4 import java.util.Arrays; 5 6 public class MaxGap { 7 8 /*给定一个数组,求如果排序之后,相邻两数的最大差值,要求时 间复杂度O(N),且要求不能用非基于比较的排

斐波那契数与二分法的递归与非递归算法及其复杂度分析

1. 什么是斐波那契数? 这里我借用百度百科上的解释:斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加.特别指出:0不是第一