zoukankan      html  css  js  c++  java
  • 使用Euclid算法求最大公约数

    参考文章 

      1、《linux c编程一站式学习》的习题5.3.1

      2、百度百科Euclid算法:https://baike.baidu.com/item/Euclid%E7%AE%97%E6%B3%95

    思想

      使用Eucid算法编写两个正整数a和b的最大公约数(GCD, Greatest Common Dvisor)

      1、如果a能整除b, 则最大公约数是b

      2、否则,最大公约数等于b和a%b的最大公约数;即gcd(a,b)=gcd(b,a%b)

    code

     1 //功能:求取两个正整数的最大公约数
     2 #include <stdio.h>
     3 
     4 //方法1:采用循环,不需要考虑a大还是b大
     5 int gcd1(int a, int b)
     6 {
     7     int r;
     8     while(b > 0){
     9         r = a % b;
    10         a = b;
    11         b = r;
    12     }
    13     return a;
    14 }
    15 
    16 //方法2:采用递归算法
    17 int gcd2(int a, int b)
    18 {
    19     return (b>0) ? gcd2(b, a%b) : a;
    20 }
    21 
    22 
    23 int main(int argc, char *argv[])
    24 {
    25     int a, b, res;
    26     while(1){
    27         printf("please input 2 intergers:
    ");
    28         scanf("%d %d", &a, &b);
    29         printf("a=%d, b=%d
    ", a, b);
    30         
    31         res = gcd1(a, b);
    32         printf("gcd1: the greatest common divisor of %d and %d is: %d
    ", a, b, res);
    33 
    34         res = gcd2(a, b);
    35         printf("gcd2: the greatest common divisor of %d and %d is: %d
    ", a, b, res);
    36         
    37     }
    38 }

    运行结果截图

  • 相关阅读:
    vmware12中安装MAC OS X 10.10
    AOL search
    [python]错误检测及异常处理try-except
    [推荐]
    [python]打开文件操作open用法
    MAC使用小技巧
    [推荐]
    [python]python中的if, while, for
    [python]python字典
    [python]python列表、元组
  • 原文地址:https://www.cnblogs.com/shanyu20/p/10943853.html
Copyright © 2011-2022 走看看