MOOC清华《程序设计基础》第5章第3题:用递归算法求最大公约数
题目描述
以递归思想计算最大公约数gcd(m,n)。
tips:若m%n等于0,则gcd(m,n)等于n;否则gcd(m,n)=gcd(n,m%n)
输入格式每一行输入两个数m,n(均为正整数),中间以空格隔开,可能会有多行输入
输出格式输出最大公约数
样例输入
12 16 9 7 2 10样例输出
4 1 2
#include <iostream>
using namespace std;
int a[10] = {0};
int m[10] = {0};
int n[10] = {0};
int i = 0;
int main()
{
int gcd(int m, int n);
while(cin >> m[i] >> n[i])
{
a[i] = gcd(m[i], n[i]);
i++;
}
for(int j = 0; j < i; j++)
cout << a[j]<< endl; //这个地方下标不要写成i,这是常犯错误
return 0;
}
int gcd(int m, int n)
{
int g;
if(m < n)
{
int temp = m;
m = n;
n = temp;
}
if(m % n == 0)
return n;
else
{
int temp = m % n;
g = gcd(n, temp);
return g;
}
}
软件业务请联系QQ:3121432464“正聪科技客服”
posted on 2017-10-05 18:17 sunshineman1986 阅读(336) 评论(0) 收藏 举报
浙公网安备 33010602011771号