您的位置:首页 > 其它

hdu1108 最小公倍数

2013-02-19 11:14 190 查看
hdu1108 最小公倍数   题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1108

题目大意:求最小公倍数

题目分析:再简单的题也值得一做,我用了两种方法

1、算法法:辗转相除求得最大公约数,再用两数之积除以此最大公约数,得结果。

2、模拟法:无脑加除,每次模余判断,也能过,没T.L.E。

法1代码如下:

#include<stdio.h>
int gcd(int m,int n)
{
int temp;
if(m<n)
{
temp=m;
m=n;
n=temp;
}
if(m%n==0)
{
return n;
}
else
{
return gcd(n,m%n) ;
}
}
int main()
{
int m,n;
while(scanf("%d%d",&n,&m)!=EOF)
printf("%d\n",m*n/gcd(n,m));
return 0;
}
法2:

#include<stdio.h>
int lcm(int m, int n)
{
int i,t;
if(m<n)
{t=m;m=n;n=t;}
for(i=m;i>=1;i++)
if(i%m==0&&i%n==0)
break;
return i;
}
int main()
{
int m,n;
while(scanf("%d%d",&n,&m)!=EOF)
printf("%d\n",lcm(n,m));
return 0;
}


PS:更多其它做法有待挖掘。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: