读书人

一个求公约数的有关问题

发布时间: 2012-05-31 12:19:24 作者: rapoo

一个求公约数的问题
这是一道ACM题:http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1250
一些不同边长的长方体,需要切割成若干个相同的小正方体,因为材料宝贵,所以切割中不能浪费,而且以整数长度为切割单位。现在要计算,针对一个长方体,有几种切割方法。

我觉得是用求公约数的方法来解,但是这样速度会很慢,希望各位有什么好的方法,帮忙解答一下

[解决办法]
[code=C/C++][/code]void swap(int& a1,int &b1)
{
int temp;
temp=a1;
a1=b1;
b1=temp;
}

//辗转相除法
int gcd(int a,int b)
{
if(a < b)swap(a,b);
int c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
return b;
}
[code=C/C++][/code]

最大公约数很快啊,辗转相除很快的;
[解决办法]
[code=C/C++][/code]
void swap(int& a1,int &b1)
{
int temp;
temp=a1;
a1=b1;
b1=temp;
}

//辗转相除法
int gcd(int a,int b)
{
if(a < b)swap(a,b);
int c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
return b;
}

[解决办法]
草,这个代码格式怎么用的;

读书人网 >C语言

热点推荐