Java控制流程的小练习

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

public class GoldFenge {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        double temp = 100;
        double difference;
        double gold = 0.618;//黄金分割点
        int fenzi = 0;
        int fenmu = 0;
        for (int i = 1; i < 20; i++) {
            for (int j = 1; j < 20; j++) {
                //分子分母不能都是偶数
                if (i % 2 == 0 && j % 2 == 0)
                    continue;
                double a = (double) i / j;//取值
                difference = a - gold;//取离黄金分割点的差值
                difference = difference < 0 ? 0 - difference :     difference;//绝对值
                //找出最小差值
                if (temp > difference) {
                    temp = difference;
                    fenzi = i;
                    fenmu = j;
                }

            }
        }
        System.out.println("离黄金分割点最近的值是" + temp + "\t分子是:" + fenzi + "\t分母是:" + fenmu);
    }

}            

 

posted @ 2020-05-28 09:38  惟求得中  阅读(91)  评论(0)    收藏  举报