| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3827 人关注过本帖
标题:辗除法什么东西哦?
只看楼主 加入收藏
ymwjx
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-7-17
收藏
 问题点数:0 回复次数:4 
辗除法什么东西哦?

输入两个正整数m和n,求其最大公约数和最小公倍数。

#include "stdio.h"
#include "conio.h"
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)/*交换两个数,使大数放在num1上*/
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
getch();
}

其实不瞒大家说,我对这个程序还是看不懂啊,特别是代换temp=num1;
num1=num2;
num2=temp;
为什么要代换呀???难道是伪代码的算法吗?辗除法又是什么哦??
temp=a%b;
a=b;
b=temp这个又是什么作用哦 ????
给个答案,谢谢!!!

搜索更多相关主题的帖子: 除法 
2006-08-03 10:24
xiaohuli120
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2006-4-10
收藏
得分:0 
辗转相除法用来求两个数的最大公约数。
始终用较大数除以较小数,然后用余数代替较大数。整除时的除数就是最大公约数

2006-08-03 10:57
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
收藏
得分:0 
展转相除法,是一种算法.用于计算最大公约数
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
我举个例子
计算75与35的最大公约数与最小公倍数
首先把75调到a上让a始终是最大的,在这不要钻牛角尖.就是知道两个数哪个大.
第一次循环
temp=75%35=5
a=35;
b=5;
判断b!=0;第二次循环:
temp=35%5=0
a=5;
b=0;
b=0,不再循环
输出最大公约数5,最小公倍数75*7;
多想几遍就能理解了

我为你痴,为你狂!
2006-08-03 11:32
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
说的很详细了,呵呵。
求余运算,被除数(大数)做除数,除数(小数)做余数,直到余数为0,此时的被除数就是最大公约数。

倚天照海花无数,流水高山心自知。
2006-08-03 14:43
marray
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-4-19
收藏
得分:0 

楼主 你上面的程序运行成功了吗 我在我的tc下运行 编译成功,怎么运行不成功啊 输出的结果不对
是编译器有问题吗? 可是别的时候也没问题啊


2007-04-19 23:12
快速回复:辗除法什么东西哦?
数据加载中...
 
   



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

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