2012年4月3日 星期二

d807: 方方

內容 :
    在一個遙遠的國度裡,每個村莊都是長方型的,雖然有時候會很不方便
    但是大家還是過著快樂的日子。直到有一天,有個異地來的軍隊,想要佔領各個村莊
    他們佔領的方式是,從村莊裡頭,切出一個儘可能大的正方形,先佔為己有
    隔日,在從未佔領的部分,重複這樣的動作。
    直到某一天,未佔領的部分為一個正方形的時候,就結束佔領的動作。
    現在我們想知道,最後的那一個正方形是多大?(見圖)
 

輸入說明 :
    給定兩個正整數 n,m 表示村莊的長寬。n,m皆介於 1 ~ 10^9
    包含多筆測試資料。

輸出說明 :
    輸出,最後的正方形大小

範例輸入 :
5 5
2 1
2 2
10 5
13 9

範例輸出 :
5
1
2
5
1

PS : 最大公因數

程式碼:
#include<stdio.h>

int main()
{
    int m,n;
    
    while(scanf("%d%d",&m,&n)==2)
    {
        if(m < n)
            m ^= n ^= m ^= n;
        while((m = (m % n)) != 0)
        {
            m ^= n ^= m ^= n;
        }
        printf("%d\n",n);
    }
    
    return 0;
}




http://zerojudge.tw/ShowProblem?problemid=d807

沒有留言:

張貼留言