【Java题目】计算离黄金分割点 0.618最近的两个数

【Java题目】计算离黄金分割点 0.618最近的两个数

寻找某两个数相除,其结果离黄金分割点 0.618最近。分母和分子不能同时为偶数。分母和分子 取值范围在[1-20]

public static void main(String[] args) {
    int m = 1, n = 1;
    for (int x = 1; x <= 20; x++) {
        for (int y = 1; y <= 20; y++) {
            if (x % 2 == 0 && y % 2 == 0) { // 分母和分子不能同时为偶数
                continue;
            }
            if (Math.abs((double) x / y - 0.618) < Math.abs((double) m / n - 0.618)) { // 一定要强制转换为double
                m = x;
                n = y;
            }
        }
    }
    System.out.println(m + "/" + n + "= " + (double) m / n);
}
posted @ 2022-03-29 08:08  sleepyhermit  阅读(160)  评论(0)    收藏  举报