題目:求兩個數的最大公約數。
輸入兩個數a和b,輸出他們的最大公約數
輸入:12 18 輸出:6
方法1:枚舉法(效率不高)
#include <iostream>
using namespace std;
int main(){
int a,b,min,result;
scanf("%d %d",&a,&b);
if(a>b){
min = b;
}else{
min = a;
}
for(int i = 1;i < min;i ){
if(a % i == 0 && b % i == 0 ){
result = i;
}
}
printf("result=%d\n",result);
return 0;
}
思路:
(1)如果b等于0,計算結束,a就是最大公約數;
(2)否則,計算a除以b的餘數,讓a等于b,而b等于那個餘數,回到第一步。
#include <iostream>
using namespace std;
int main(){
int a,b,re;
scanf("%d %d",&a,&b);
while(b){
re = a % b;
a = b;
b = re;
}
printf("%d\n",a);
return 0;
}