我正在构建一个java程序,但对如何解决其数学问题没有正确的想法。
我正在做的任务是:
我必须用墙纸覆盖墙壁。墙是“a”(输入)米宽和“b”(输入)米高。我可以使用尺寸为1×1,2×2到2 ^ n×2 ^ n(n是输入)的壁纸。我想用壁纸“打扮”墙壁,以便我尽可能长时间使用最大的壁纸。
我需要的输出只是使用了许多壁纸。
示例:
3 输入是:a = 22,b = 29,n = 3
这意味着墙壁为22×29,最大壁纸尺寸为2 ^ 3×2 ^ 3(8×8)。然后墙应该像下面这样:
http://postimg.org/image/4842z9ey1/
所以输出将是53个所需壁纸的数量。
由于a和b可以是长数(最多10 ^ 18),最好的事情就是不要使用循环。 n最多可以达到30。
知道它更多是一个数学问题,但这取决于java编码如何完成它,所以我在这里问。
由于