天天看点

奇怪的小鸭子也增加了Java实现题干思路

题干

Description

有一个 A×B 的大澡盆,还有若干个 a×b 的长方形小鸭子,澡盆里最少放几只鸭子后,便无法再向其中放入更多的鸭子?

鸭子很倔强,不能旋转成 b×a,也不能重叠放置。

Input

四个整数,分别表示 A,B,a,b

1<=a<=A<=30000

1<=b<=B<=30000

Ouput

最少能放几只鸭子。

思路

输出最少放多少小鸭子,也就是横着最少,竖着也最少,二者相乘就是答案。

如何最少:对于A边长来说,放一个a,空一个a-0.000…1就可以了,基本上就是放一个,留出来一块刚好放不下的空白,然后再放!

AC代码

import java.util.Scanner;

public class DuckComing {
    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);
        Double A=scanner.nextDouble();
        Double B=scanner.nextDouble();
        Double a=scanner.nextDouble();
        Double b=scanner.nextDouble();
        scanner.close();
        int x=minNum(A,a);
        int y=minNum(B,b);
        System.out.println(x*y);
    }
    static int minNum(Double X,Double x){
        int count=0;
        while(X>=x){
            count+=1;
            X-=x;//放一个小鸭子
            X=X-x+0.000000001;//空一个位置刚好放不下小鸭子,然后再循环
        }
        return count;
    }
}