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; }