首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个求公约数的有关问题

2012-05-31 
一个求公约数的问题这是一道ACM题:http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID1250一些不同边长的长

一个求公约数的问题
这是一道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;
}

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

热点排行