|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ c 语言公约数问题!
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
764
人关注过本帖
标题:
c 语言公约数问题!
只看楼主
加入收藏
huhan1986120
等 级:
新手上路
帖 子:2
专家分:0
注 册:2010-1-31
结帖率:
0
楼主
收藏
已结贴
√
问题点数:5 回复次数:5
c 语言公约数问题!
求最小公约数
hcf(u,v)
int u,v;
{
int a,b,t,r;
if(u>v)
{
t=u;u=v;v=t;
}
a=u;b=v;
while((r=b%a)!=0)
{
b=a;a=r;
}
return(a);
}
我想问一下,while循环里面一段是什么意思,最好用数学的方法解释,别的方法也可以!谢谢大侠
搜索更多相关主题的帖子:
公约数
语言
2010-01-31 11:05
举报帖子
使用道具
赠送鲜花
nbaqqqq
等 级:
论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
第
2
楼
收藏
得分:1
while((r=b%a)!=0)
b%a是b除a求余数
!=就是不等于
整个这一句就是 当b除a得出的余数不等于0时(b不能被a整除)
2010-01-31 12:31
举报帖子
使用道具
赠送鲜花
jiangwu10057
等 级:
黑侠
威 望:
1
帖 子:341
专家分:667
注 册:2009-3-25
第
3
楼
收藏
得分:1
hcf(u,v)
int u,v;
{
int a,b,t,r;
if(u>v)
{
t=u;u=v;v=t;
}
a=u;b=v;
while(r=b%a)
{
b=a;a=r;
}
return(a);
}
这个是辗转辗转相除法又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。相除法【要是没记错的话】
辗转相除法的运算速度为 O(n2),其中 n 为输入数值的位数。
2010-01-31 15:45
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
4
楼
收藏
得分:1
O(n2) 肯定是说大了,没这么慢。是 log(n)。
准确的说,两个数中最大的那个数,如果不大于 Fibonacci 数列的第 n 项,那么所需除法次数不超过 n 。
2010-01-31 18:37
举报帖子
使用道具
赠送鲜花
huhan1986120
等 级:
新手上路
帖 子:2
专家分:0
注 册:2010-1-31
第
5
楼
收藏
得分:0
谢谢楼上的大侠们!
2010-02-02 11:21
举报帖子
使用道具
赠送鲜花
human84
来 自:哈尔滨 / 重庆
等 级:
论坛游侠
帖 子:154
专家分:141
注 册:2009-11-1
第
6
楼
收藏
得分:1
看不懂...哪位大侠讲讲~
2010-02-02 11:39
举报帖子
使用道具
赠送鲜花
6
1/1页
1
快速回复:
c 语言公约数问题!
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.024781 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved