首先我们假设当前的矩形长为 x,宽为 y,要分出 k 块,那么不难想到分出的一块的长 dx 最短为x/k,宽 dy 最短为 y/k,而且每次切的长度一定是 dx 的倍数或 dy 的倍数,于是我们递归搜索能切的每个比例,每次切长或者宽,在分出的两块中取比值的最大值,更新最大值的最小值,返回即可。
Python代码
def dfs(x, y, n):
小红买了一个长为 a ,宽为 b的大饼,一共有 n 个人来一起吃这张大饼,要求每个人必须获得相同面积的大饼。现在小红被要求每一切只能平行于一块大饼的一边(任意一边),并且必须把这块大饼切成两块。那么我们要切成 n 块饼的话,小红必须切 n−1 次。
小红患有重度强迫症,他一定要求 n 块大饼的长边与短边的比值的最大值最小。你能帮小红计算出这个比值吗
一行三个整数 a , b , n , 分别表示大饼的长,宽以及人数
一个浮点数,保留 6 位小数,表示切分后大饼的长边与短边的比值
输入:
1 2 3
输出:
1.500000