| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:最大公约数问题?求助!!!
取消只看楼主 加入收藏
Incomplete
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-8-4
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:1 
最大公约数问题?求助!!!
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int x,y;
    cout<<"please enter two integer numbers:";
    cin>>x>>y;
    x=(x+y+fabs(x-y))/2;
    y=(x+y-fabs(x-y))/2;
    int r;
    do
    {
        r=x%y;
        x=y;
        y=r;
    }
    while(r);
    cout<<"The common denominator is: "<<x<<endl;
    return 0;
}

运行结果:
图片附件: 游客没有浏览图片的权限,请 登录注册

7和8的最大公约数不是1吗?怎么是8,是我写的程序有错吗?还望高手指教,谢谢!
搜索更多相关主题的帖子: 最大公约数 
2010-08-08 22:52
Incomplete
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-8-4
收藏
得分:0 
回复 3楼 pangding
谢谢!看来不能乱用max=(a+b+fabs(a-b))/2;和min=(a+b-fabs(a-b))/2;这个公式。
我写了个递归的:
#include<iostream>
using namespace std;
int GCD(int x,int y)
{
    if(x%y==0)
        return y;
    return GCD(y,x%y);
}
int main()
{
    int x,y;
    cout<<"please enter two integer numbers:";
    cin>>y>>x;
    cout<<"The common denominator is: "<<GCD(x,y)<<endl;
    return 0;
}

[ 本帖最后由 Incomplete 于 2010-8-9 13:45 编辑 ]
2010-08-09 13:36
快速回复:最大公约数问题?求助!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035475 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved