題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數
輾轉相除法
輾轉相除法是古希臘求兩個正整數的最大公約數的演算法,也叫歐幾里德演算法,其方法是用較大的數除以較小的數,上面較小的除數和得出的餘數構成新的一對數,繼續做上面的除法,直到出現能夠整除的兩個數,其中較小的數(即除數)就是最大公約數。以求136和93的最大公約數為例,操作如下:
168/93=1 ……75
93/75=1……18
75/18=4……3
18/3=6
所以3就是168和93的最大公約數
遍曆法
void
fun(
int m,
int n)
a=m;
b=n;
//讓a等於較大的數,讓b等於較小的數
while
(b!=0)
printf
("最大公約數是:%d\n"
,a);
printf
("最小公倍數是:%d\n"
,m*n/b)
;}
void
fun2
(int m,
int n)
else
while
(max%m!=
0|| max%n!=0)
y=max;
printf
("最大公約數:%d\n最小公倍數:%d\n"
,x,y);}
}
輾轉相除法(歐幾里德演算法)的學習和使用
對於兩個數的換位置,可以使用昨天剛鞏固的條件運算子的使用
while迴圈與for迴圈的區別與使用
每日程式C語言16 找出比賽對手名單
兩個桌球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。以抽籤決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他 不和x,z比,請程式設計序找出三對賽手的名單 不難發現,甲乙兩隊中隊員都是順序編號的,我們可以以此來寫迴圈 int main cout a對 a對 c,b對...
每日程式C語言29 將陣列逆序輸出
將乙個陣列逆序輸出 可以借用另乙個陣列,來存放當前陣列的逆序 也可以讓當前陣列的首元素和末尾元素互換,第二個元素和倒數第二個元素互換,依次進行 void fun1 int a 借用另乙個陣列來逆序存放陣列 void fun2 int a 陣列的第乙個和最後乙個數互換,第二個和倒數第二個互換,依次類推...
每日程式C語言49 猴子分桃子問題
海灘上有一堆桃子,五隻猴子來分。第一只猴子把這堆桃子平均分為 五份,多了乙個,這只猴子把多的乙個仍入大海中,拿走了乙份。第二隻猴 子把剩下的桃子又平均分成五份,又多了乙個,它同樣把多的乙個扔入大海,拿走了乙份,第三,第四,第五只猴子都是這樣做的,問海灘上原來最少有 多少個桃子?這個題主要是找到剩餘桃...