①以前用的一种 容易超时!
挨个试:
f(a>=t)
i=t;
else
i=a;
do{
if(a%i==0&&t%i==0)
{
max=i;
break;
}
i--;
}while(i>0);
cout<<max;
②第二章是辗转相除法
采用辗转相除法!!!!!。设有A,B两个数符合求取最大公约数,则 result = A % B,如果 result 不是最大公约数。
则 A = B,B = result 循环求解,有最大公约数即结束程序。)
#include<iostream>
using namespace std;
int f(int m, int n)
{
int t; t = m % n;
if (t == 0) return n;
else
{
m = n, n = t;
return f(m, n);
}
}
int main()
{
int m, n,t; cin >> m >> n;
if (m == n)
{
cout << m; return 0;
}
if (m > n) cout<<f(m, n);
if (m < n) cout<<f(n, m);
}