zoukankan      html  css  js  c++  java
  • 简单地求最大公约数

    问题描述:输入两个正整数,求其最大公约数。实现多组数据输入

    我学习不努力的表现之一就是课堂上老师讲的新知识记不住,因为不经常用,留在脑子里的是自己的想法。这不,这个问题每每遇到都是如下的解法,其实用递归才简单。

    #include<stdio.h>
    int digui(int max,int min)
    {
        int left;
        while((left=max%min)!=0){//就是辗转相除的思想,当left等于0时,max能被min整除,min就是最大公约数;
            max=min;//否则,把原来的除数变成新的被除数,
            min=left;//把原来的余数变成新的除数,反复执行
        }
        printf("%d\n",min);
    }
    int main()
    {
        int a,b,medie;
        while(scanf("%d%d",&a,&b)!=EOF){
            if(a<b){//保持a总是大于等于b的
                medie=a;
                a=b;
                 b=medie;
            }
            digui(a,b);
        
        }
    }
            
        用递归写代码似乎简单些 ,道理都是一样。

    #include<stdio.h>
    int digui(int max,int min)
    {
        if(max%min==0)
          return min;
        else
          return digui(min,max%min);
    }
    int main()
    {
        int a,b,medie;
        while(scanf("%d%d",&a,&b)!=EOF){
            if(a<b){
                medie=a;
                a=b;
                 b=medie;
            }
        printf("%d\n",digui(a,b));
        
        }
    }
            
        

  • 相关阅读:
    LeetCode Power of Three
    LeetCode Nim Game
    LeetCode,ugly number
    LeetCode Binary Tree Paths
    LeetCode Word Pattern
    LeetCode Bulls and Cows
    LeeCode Odd Even Linked List
    LeetCode twoSum
    549. Binary Tree Longest Consecutive Sequence II
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/laobanban/p/2941242.html
Copyright © 2011-2022 走看看