标题:大侠们赶紧进啊!来给咱们讲讲最小公倍数与最大公约数问题啊!!!谢啦!
只看楼主
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
结帖率:93.75%
已结贴  问题点数:20 回复次数:4 
大侠们赶紧进啊!来给咱们讲讲最小公倍数与最大公约数问题啊!!!谢啦!
题目是这样的:输入两个正整数m和n,求其中最大公约数与最小公倍数。
答案:#include <iostream>
using namespace std;
int main ()
{int p,r,n,m,temp;
 cout<<"please enter two positive integer numbers n,m:";
 cin>>n>>m;
 if (n<m)              
     {temp=n;
      n=m;
      m=temp;                //把大数放在n中, 小数放在m中
     }
 p=n*m;                     //先将n和m的乘积保存在p中, 以便求最小公倍数时用
 while (m!=0)               //求n和m的最大公约数
    {r=n%m;
     n=m;            
     m=r;
 }
 cout<<"HCF="<<n<<endl;
 cout<<"LCD="<<p/n<<endl;        // p是原来两个整数的乘积
 return 0;
 }  
while语句那一段不太明白啊!请指点一下迷津吧!
 



   
   
搜索更多相关主题的帖子: 公倍数 公约数 正整数 答案 
2011-05-15 10:51
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:10 
程序代码:
#include <iostream>
using namespace std;

int function(int n, int m);

int main ()
{
    int p,r,n,m;
    cout << "please enter two positive integer numbers n,m:";
    cin >> n >> m; 

    p=n*m;                     //先将n和m的乘积保存在p中, 以便求最小公倍数时用
/*    while (m!=0)               //求n和m的最大公约数
    {
        r=n%m;
        n=m;           
        m=r;
    }*/
    n = function(n, m);

    cout<<"HCF="<<n<<endl;
    cout<<"LCD="<<p/n<<endl;        // p是原来两个整数的乘积

    return 0;
} 
//while语句那一段不太明白啊!请指点一下迷津吧
/*

 *在while当中每次的循环可以这样来理解

 *对于n 和 m  假设条件 n >= m 恒成立

 *那么把n进行变形 成为 n = m*x + y; (x>=1,  m>y>=0)

 *那么下次循环的时候 把m调成n 把y调成m  依次进行下去 直到变形式当中y=m

 *则m就为最大公约数

 */
//递归实现
int function(int n, int m)
{
    if (n%m == 0)
    {
        return m;
    }
    else
    {
        return function(m, n%m);
    }
}
2011-05-15 15:55
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
得分:0 
这是不是说明我的数学不太好啊!我主要是数学原理不懂啊!!呜呜!不过还是谢谢你!悲催滴数学!
2011-05-15 22:13
w_1609
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2010-12-15
得分:10 
辗转相除法, 去百度下你就知道了。。。
2011-05-16 00:19
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
得分:0 
回复 4楼 w_1609
谢谢啦!嘿嘿!
2011-05-16 17:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-339925-1-1.html




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

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