如何解决将大小为l * b的面包切成更小的相同块,以使每块都是正方形,并具有最大可能的边长
int restaurant(int l,int b) {
int x,min,max,count=0,i;
if(l<=b) //here assigning min,max lengths of rectangle
{
min=l;
max=b;
}
else
{
min=b;
max=l;
}
int array[max];
for(x=1;(x<=min && x*x<=l*b);x++) // here checking length of square not
// exceeding min length of rectangle &
// area of square not exceeding the
// area of rectangle
{
if((l*b)%(x*x)==0) // here checks the x value for which
// there is no left over in bread,// storing that square length in an
// array
{
array[count]=x;
count++;
}
}
x=array[0];
for(i=0;i<=count-1;i++) // getting maximum square length
// 'x'
{
if(array[i]>=x)
x=array[i];
}
return (l*b)/(x*x); // returning no. of square for
// the max. 'x'
}
您能解释一下为什么这种逻辑不起作用吗?
不。的平方=(l b)/(x x)
其中x是一个正方形的最大可能长度
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。