输入两个数a和b,输出他们的最大公约数输入:1218输出:6方法1:枚举法#include<iostream>usingnamespacestd;intmain(){inta,b,min,result;scanf;if(a>b){min=b;}else{min=a;}for{if{result=i;}}printf;return0;}方法2:辗转相除法思路:如果b等于0,计算结束,a就是最大公约数;否则,计算a除以b的余数,让a等于b,而b等于那个余数,回到第一步。

题目:求两个数的最大公约数。
输入两个数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;}
