zoukankan      html  css  js  c++  java
  • 最大公约数

    1、枚举

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int a, b;
     6     int min;
     7 
     8     scanf_s("%d %d", &a, &b);
     9     if (a < b)
    10     {
    11         min = a;
    12     }
    13     else
    14     {
    15         min = b;
    16     }
    17     
    18     int ret = 0;
    19     for (int i = 1; i <= min; i++)
    20     {
    21         if (a % i == 0)
    22         {
    23             if (b % i == 0)
    24             {
    25                 ret = i;
    26             }
    27         }
    28     }
    29     
    30     printf("%d和%d的最大公约数是%d.
    ", a, b, ret);
    31 
    32     return 0;
    33 }

    1、辗转相除法

     1 /* 
     2     如果b等于0,计算结果,a就是最大公约数;
     3     否则,计算a除以b的余数,让a等于b,而b等于那个余数;
     4     回到第一步。
     5 
     6     a    b    temp
     7     12    18    12
     8     18    12    6
     9     12    6    0
    10     6    0
    11 */
    12 #include <stdio.h>
    13 
    14 int main()
    15 {
    16     int a, b;
    17     int temp;
    18 
    19     scanf_s("%d %d", &a, &b);
    20     
    21     while (b!=0)
    22     {
    23         temp = a % b;
    24         a = b;
    25         b = temp;
    26     }
    27 
    28     printf("gcd = %d
    ", a);
    29     return 0;
    30 }
  • 相关阅读:
    细菌 状态压缩
    素数
    骑士问题(knight)
    魔法石的诱惑
    平面上的最接近点对
    救援行动(save)
    优先队列
    leetcode 92. 反转链表 II
    leetcode 91. 解码方法
    leetcode 39. 组合总和
  • 原文地址:https://www.cnblogs.com/2018jason/p/10948333.html
Copyright © 2011-2022 走看看