C語言第七篇:輾轉相除法求最大公約數

qq_30866297發表於2016-03-24



一、演算法的基本概念


1、什麼是演算法?


為解決問題而採取的方法和步驟。

演算法是由一系列規則組成的過程,這些規則確定了一個操作的順序,以便能在有限步驟內得到特定問題的解。


2、演算法重要嗎?


“程式=演算法+資料結構”——N.Wirth


3、演算法的描述工具

  • (1)自然語言
  • (2)流程圖:程式流程圖,N-S圖
  • (3)虛擬碼


二、最大公約數——輾轉相除法


演算法:






原始碼:


/*
*Copyright (c)2016,劉兵馬俑
*All rights reserved.
*檔名稱:main.c
*作    者:劉兵馬俑
*完成日期:2016/03/24
*版 本 號:v1.0
*問題描述:輾轉相除法求兩個非負整數的最大公約數
*程式輸出:最大公約數
*/
#include <stdio.h>

int main()
{
    int a,b,r;
    printf("請輸入兩個正整數:\n");
    scanf("%d %d",&a,&b);
    //如果a<b,交換a和b的值
    if(a<b)
    {
        r=a;
        a=b;
        b=r;
    }

    //輾轉相除法,因為r的初始值不為0,所以while語句至少會執行一次
    //直至餘數為零,跳出迴圈
    while(r!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }

    //輸出最大公約數
    printf("最大公約數為:%d\n",a);

    return 0;
}



執行結果









相關文章