int gcd(int m,int n) { int t = 1; while(t != 0) { t=m%n; m=n; n=t; } return m; }
int gcd(int m,int n) { int t = 1; while(m%n != 0) { t=m%n; m=n; n=t; } return n; } //這個時候返回的是n,爲何呢? //由於while的緣由,當m%n等於0時,直接跳出循環了,沒有m,n的轉換了,這點困擾我很久。。。
#include <iostream> #include <conio.h> using namespace std; int gcd(int a, int b){ return b == 0 ? a : gcd(b, a % b); } int main() { cout << gcd(169, 48) << endl; _getch(); return 0; }