长方形中裁剪正方形问题

  • Post author:
  • Post category:其他




考递归思想,注意递归函数中的返回条件!!!


import

java.util.Scanner;


class

Test{


public


static


void

main(String[]

agrs

) {


int


x

,

y

;

Scanner

scanner

=

new

Scanner(System.

in

);


x

=

scanner

.nextInt();


y

=

scanner

.nextInt();


int


less

=Math.max(

x

,

y

);


int


big

=Math.min(

x

,

y

);

System.

out

.println(getnum(

less

,

big

));

}


static


int

getnum(

int


less

,

int


big

){


if

(

less

==0){


return

0;

}


if

(

less

==

big

){


return

4*

less

;

}


int


count

=

big

/

less

;




int



less_1

=

big



count

*

less

;


int


big_1

=

less

;


return


count

*4*

less

+getnum(

less_1

,

big_1

);

}

}

php实现如下:


<


?php




function


getZ


(


$


l


,


$


d


){






if


(


$


d


==


0


){






return




0


;






}







if


(


$


l


==$


d


){






return




4


*$


d


;






}







$


count


=


floor


(


$


l


/$


d


)


;






$


l2


=$


d


;






$


d2


=$


l


-$


count


*$


d


;






return




4


*$


d


*$


count


+


getZ


(


$


l2


,


$


d2


)


;




}





$


length


=


fopen


(


“php://stdin”


,


“r”


)


;




$


l


=


fgets


(


$


length


)


;




$


height


=


fopen


(


“php://stdin”


,


“r”


)


;




$


d


=


fgets


(


$


height


)


;




printf


(


“%d


\n





,getZ


(


$


l


,


$


d


))


;




?


>



版权声明:本文为gzwdz778原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。