| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1128 人关注过本帖
标题:[求助]多个数的公约数,公倍数问题
只看楼主 加入收藏
snake00cy
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-11-1
收藏
 问题点数:0 回复次数:4 
[求助]多个数的公约数,公倍数问题
各位同仁,请问任意输入n个数字,求最大公约数,和最小公倍数怎么写?我只会写两个数字的,多个数字的不知道算法如何。谢谢啦。。。
搜索更多相关主题的帖子: 公约数 倍数 
2005-09-15 15:06
jackrain
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2005-9-4
收藏
得分:0 
递归呗。比如要求a,b,c的最大公约数,你就先求a,b的最大公约数,设为m,再求m,c的最大公约数就可以了。

程序和身体一样,健壮,再健壮! 我爱C++
2005-09-15 15:12
snake00cy
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-11-1
收藏
得分:0 
对哦,谢谢了。

2005-09-15 16:50
snake00cy
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-11-1
收藏
得分:0 

我写出来了,可能有点乱,高手点评一下,谢谢 #include "stdio.h" #define N 10 main() { int CD(int a[],int n); int a[N] ,n, i,cd ,p,f; printf("input the amount:"); scanf("%d",&n); printf("you input %d number.\n",n); for (i=0;i<n;i++) { scanf("%d",&a[i]); } p=1; for(i=0;i<n;i++) { p=p*a[i]; } cd = CD(a,n); f=p/cd; if (cd!=1) printf("the common divisor is:%d\n",cd); else printf("No common divisor\n"); printf("the common multiple is:%d\n",f); }

CD(int arr[N],int n) { int i, m , k ,r,b,c,temp,temp2; if (arr[0]<arr[1]) { temp = arr[0]; arr[0] = arr[1]; arr[1] = temp; } k=arr[0];m=arr[1]; while (m!=0) { r=k%m; k = m; m = r; } for (i=2;i<n;i++) { c= arr[i]; if (k<c) { temp2 = c; c = k; k = temp2; } while(c!=0) { b=k%c; k=c; c=b; } } return(k); }


2005-09-16 13:27
放大师傅
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-12-20
收藏
得分:0 
.......
2013-12-20 21:28
快速回复:[求助]多个数的公约数,公倍数问题
数据加载中...
 
   



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

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