美文网首页
WarMj:求最大公约数

WarMj:求最大公约数

作者: WarMj | 来源:发表于2017-07-11 10:57 被阅读0次

图解

“面积法”求最大公约数

上图所示的是一个 22 * 8 的长方形。
这个长方形可分为两个8 * 8的正方形和一个 8 * 6 的长方形,将这个 8 * 6 的长方形继续分出正方形,直到全部都是正方形为止,此时最小的正方形的边长就是 22 与 8 的最大公约数。

代码分析

#include<stdio.h>
#include<stdlib.h>

//求出最大公约数gcd(greatest common divisor)
int gcdf(int length, int width)
{
    return ((width == 0) ? length : gcdf(width, length % width));
}

//判断大小并直接返回最大公约数
int gcd(int length, int width)
{
    return ((length > width) ? gcdf(length, width) : gcdf(width, length));
}

int main()
{
    int a, b;
    
    puts("Please enter two numbers:");
    printf("Number1:"); scanf("%d", &a);
    printf("Number2:"); scanf("%d", &b);
    
    printf("The greatest common divisor is %d .\n", gcd(a, b));
     
    system("pause");
    return (0);
}

相关文章

  • WarMj:求最大公约数

    图解 上图所示的是一个 22 * 8 的长方形。这个长方形可分为两个8 * 8的正方形和一个 8 * 6 的长方形...

  • 最大公约数C++

    求两个数的最大公约数:

  • python 求最大公约数和最小公倍数

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

  • 常用的简单函数 ——求最大公约数的函数

    当计算多个数的公约数时,需要知道,前两个的最大公约数,依次和后面的数求公约数,得到的就是所有数字的最大公约数。

  • 笔试刷题-京东2018-07-24

    题目描述: 思路如下: 求最大公约数 约分 代码如下:

  • 求最大公约数

    求最大公约数 摘自《算法》 描述 计算两个非负整数p和q的最大公约数:若q是0,则最大公约数为p。否则,将p除以q...

  • 最小公倍数与最大公约数

    求两个整数的最小公倍数 最小公倍数 = 两整数的乘积 / 最大公约数 求两个整数的最大公约数(greatest c...

  • 最大公约数&最小公倍数

    相关链接:常见算法:C语言求最小公倍数和最大公约数三种算法解析:求最大公约数的“辗转相除法原理” 简述辗转相处法的...

  • 实验十:优秀代码

    C : 递归求最大公约数 题目描述写递归函数求两个数的最大公约数优秀代码 D: 编写删除字符串中某个字符的函数--...

  • 关于停机问题的一点思考

    从最大公约数讲起 如果要计算90和21的最大公约数,根据欧几里德的定理,等同于求21和6的最大公约数,进一步等同于...

网友评论

      本文标题:WarMj:求最大公约数

      本文链接:https://www.haomeiwen.com/subject/lpvphxtx.html