计算两个整数的最大公约数和最小公倍数 实践

题目描述

用递归的方法编写函数求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;
}

  

 

posted @ 2016-10-25 23:30  kurer  阅读(227)  评论(0)    收藏  举报