| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1014 人关注过本帖
标题:请问如何用C++实现欧几里德算法
取消只看楼主 加入收藏
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:17 
请问如何用C++实现欧几里德算法
我做磨了一个晚上也没有出来!请教!谢谢!
欧几里德算法


[ 本帖最后由 SwanK 于 2013-2-13 18:16 编辑 ]
搜索更多相关主题的帖子: 欧几里德 如何 
2013-02-13 17:59
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
收藏
得分:0 
题目如下:
找出两个任意正整数的最大公约数,例如 x 和 y ,它们的公约数例如是z. 用loop的方式来写程序。
让用户自己任意输入2个数字-任意正整数,然后经过loop 的方式来实现输出 最大公约数z.
谢谢!
2013-02-13 18:37
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
收藏
得分:0 
1 语言不会 不知道怎么把算法用语言实现,楼上的专家说对了。我着急啊!
2013-02-13 18:39
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
收藏
得分:0 
你好快啊!用c++啊。
#include "stdio.h"
 #include "conio.h"---这是什么?

我看课本一般是
#include<iostream>
using namespace std;
....
2013-02-13 18:51
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
收藏
得分:0 
看看这个:你是不是用C而不是C++.我没有学过C

 #include <iostream>

using namespace std;

 int main()
 {
   int a,b,num1,num2,temp;

   cout <<"please input two numbers:\n" <<endl;

   cin >> num1>> num2;

   if(num1<num2)         //Exchange two numbers, so that large numbers on num1

   {
     temp=num1;
     num1=num2;
     num2=temp;
   }

   a=num1;b=num2;

   while(b!=0)           //Rolling division until b is 0
   {
     temp= a % b;
     a=b;
     b=temp;
   }
   cout<< "The gcd of number is:"<<a;

   return 0;
 }

2013-02-13 19:03
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
收藏
得分:0 
以上对不对了?帮我运行一下,看有无BUG?谢谢了!
还有一题,我另外开出。请帮忙!
2013-02-13 19:05
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
收藏
得分:0 
为什么要把最后的a换成num1 * num2 / a; ?
2013-02-13 19:23
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
收藏
得分:0 
我明白了。
但是我运行的时候 有一处错,但是我不知道那里错。
我不能输入2变量
2013-02-13 19:28
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
收藏
得分:0 
要不要对变量先初始化?
例如
num1=0;
num2=0;
a=0;
...
2013-02-13 19:30
SwanK
Rank: 1
等 级:新手上路
帖 子:68
专家分:3
注 册:2013-1-18
收藏
得分:0 
看,错在那?这 行字我看不到 我用dos的"please input two numbers:\n";

#include <iostream>


using namespace std;

int main()
{
    int a,b,num1,num2,temp;

    cout << "please input two numbers:\n";

    cin >> num1 >> num2;

    cout << endl;

    if (num1 < num2)         //Exchange two numbers, so that large numbers on num1

    {
        temp = num1;
        num1 = num2;
        num2 = temp;
    }

    a = num1;
    b = num2;

    while(b!=0)           //Rolling division until b is 0
    {
        temp = a % b;
        a = b;
        b = temp;
    }
    cout << "The gcd of number is:" << num1 * num2 / a;

    return 0;
}
2013-02-13 19:43
快速回复:请问如何用C++实现欧几里德算法
数据加载中...
 
   



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

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