求最大公约数问题
【题目描述】
给定两个正整数,求它们的最大公约数。
【输入】
输入一行,包含两个正整数(<1,000,000,000)。
【输出】
输出一个正整数,即这两个正整数的最大公约数。
【输入样例】
6 9
【输出样例】
3
#include<iostream> #include<algorithm> using namespace std; int divide(int x, int y) { if(x < y) swap(x, y); if(y == 0) return x; return divide(y, x%y); // 为什么此处非要加return?? } int main() { // 递归的方式:辗转相除法。 // 24 36 -> 24 12(36%24) -> 12 0(24%12) -> 12 int m, n; cin >> m >> n; cout << divide(m, n); return 0; }