计算两个整数的最大公约数和最小公倍数 实践
题目描述
用递归的方法编写函数求Fibonacci级数,公式为
![]()
输入
输入一个正整数n(n<10)
输出
输出一个正整数,为答案
样例输入
2
样例输出
1
#include<iostream> using namespace std; int main() { int x,y,tem,common_divisor,common_multiple,x2,y2; cin>>x>>y; x2=x; y2=y; if(x>y) { tem=x; x=y; y=tem; } tem=x%y; while(tem) { x=y; y=tem; tem=x%y; } common_divisor=y; common_multiple=(x2*y2)/common_divisor; cout<<common_divisor<<" "<<common_multiple; return 0; }
下面这种方法本地运行正确,但是在OJ上出现错误。
#include<iostream>
using namespace std;
int main()
{
int x,y,tem,common_divisor,common_multiple,i;
cin>>x>>y;
if(x>y)
{
tem=x;
x=y;
y=tem;
}
if(y%x==0)
common_divisor=x;
else
{
for(i=x/2;i>=1;i--)
if(y%i==0)
if(x%i==0)
common_divisor=i;
}
common_multiple=(x*y)/common_divisor;
cout<<common_divisor<<" "<<common_multiple;
return 0;
}

浙公网安备 33010602011771号