鍍金池/ 教程/ C/ 一起talk C栗子吧(第九回:C語言實(shí)例--最大公約數(shù))
一起talk C栗子吧(第八回:C語言實(shí)例--素?cái)?shù))
一起talk C栗子吧(第十八回:C語言實(shí)例--輸出十六進(jìn)制)
一起talk C栗子吧(第十七回:C語言實(shí)例--棧二)
一起talk C栗子吧(第十九回:C語言實(shí)例--位操作)
一起talk C栗子吧(第十六回:C語言實(shí)例--棧一)
一起talk C栗子吧(第五回:C語言實(shí)例--數(shù)組巧妙賦值)
一起talk C栗子吧(第十二回:C語言實(shí)例--單鏈表一)
一起talk C栗子吧(第九回:C語言實(shí)例--最大公約數(shù))
一起talk C栗子吧(第二回:C語言實(shí)例--判斷閏年)
一起talk C栗子吧(第六回:C語言實(shí)例--生成隨機(jī)數(shù))
一起talk C栗子吧(第四回:C語言實(shí)例--斐波那契數(shù)列)
一起talk C栗子吧(第十四回:C語言實(shí)例--循環(huán)鏈表)
一起talk C栗子吧(第十五回:C語言實(shí)例--雙向鏈表)
一起talk C栗子吧(第二十一回:C語言實(shí)例--表達(dá)式求值)
一起talk C栗子吧(第三回:C語言實(shí)例--求階乘)
一起talk C栗子吧(第七回:C語言實(shí)例--進(jìn)制轉(zhuǎn)換)
一起talk C栗子吧(第二十回:C語言實(shí)例--括號匹配)
一起talk C栗子吧(第一回:C語言實(shí)例概述)
一起talk C栗子吧(第十回:C語言實(shí)例--最小公倍數(shù))
一起talk C栗子吧(第十一回:C語言實(shí)例--文件組織結(jié)構(gòu))
一起talk C栗子吧(第十三回:C語言實(shí)例--單鏈表二)

一起talk C栗子吧(第九回:C語言實(shí)例--最大公約數(shù))

各位看官們,大家好,從今天開始,我們講大型章回體科技小說 :C栗子,也就是C語言實(shí)例。閑話休提, 言歸正轉(zhuǎn)。讓我們一起talk C栗子吧!

看官們,上一回中咱們說的是素?cái)?shù)的例子,這一回咱們說的例子是:最大公約數(shù)。

看官們,最大公約數(shù)也叫最大公因數(shù)。兩個(gè)整數(shù)中的公約數(shù)有好幾個(gè),這些公約數(shù)中最大的一個(gè)就叫作最 大公約數(shù)。當(dāng)然了,這是數(shù)學(xué)中的一個(gè)概念,如果不明白了,可以查閱相關(guān)的數(shù)學(xué)知識。

最大公約數(shù)的求法有好幾種,最常用的是輾轉(zhuǎn)相除法,也叫歐幾里德算法。該算法的原理如下:

  • 如果正整數(shù)a除以正整數(shù)b所得的余數(shù)為c,那么a和b的最大公約數(shù)與b和c的最大公約數(shù)相等。
  • 重復(fù)步驟1中的操作,繼續(xù)求b和c的最大公約數(shù)。如此反復(fù),直到余數(shù)等于0為止。

看官們,詳細(xì)的代碼如下,請大家參考

     1  /* **************************
     2   * For Greatest Common Divisor
     3   * *************************/
     4  #include<stdio.h>
     5  
     6  int main()
     7  {
     8      int a,b,gcd,temp,ta,tb;
     9      int mod;
    10      a = b = gcd = temp = ta = tb = mod = 0;
    11  
    12      printf("Please input 2 number for get the GCD of them .\n");
    13      scanf("%d %d",&a,&b);
    14      if(a <0 || b < 0)
    15      {
    16          printf("bad input number \n");
    17          return 0;
    18      }
    19  
    20      if(a < b)
    21      {
    22          temp = a;
    23          a = b;
    24          b = temp;
    25      }
    26  
    27      ta = a;
    28      tb = b;
    29      mod= a % b;
    30      while(mod != 0)
    31      {
    32          ta = tb;
    33          tb = mod;
    34          mod = ta % tb;
    35      }
    36  
    37      printf("the GCD of %d and %d is:%d \n",a,b,tb);
    38  
    39      return 0;
    40  }
    41  

各位看官,關(guān)于最大公約數(shù)的例子咱們就說到這里。欲知后面還有什么例子,且聽下回分解。