• Java知识系统回顾整理01基础05控制流程08综合练习


    一、练习--黄金分割点

    题目:

    寻找某两个数相除,其结果 离黄金分割点 0.618最近

       

    分母和分子不能同时为偶数

    分母和分子 取值范围在[1,20] (即1到20)

    要求效果:

       

    public class HelloWorld {

        public static void main(String[] args) {

       

            // 寻找某两个数相除,其结果 离黄金分割点 0.618最近      

            // 分母和分子不能同时为偶数

            // 分母和分子 取值范围在[1-20]

            int range = 20; // 取值范围

            float breakPoint = 0.618f; // 黄金分割点

            float minDiff = 100; // 离黄金分割点的差值

            int answerFenzi = 0; // 找到的分子

            int answerFenmu = 0; // 找到的分母

            for (int fenzi = 1; fenzi <= range; fenzi++) {

                for (int fenmu = 1; fenmu <= range; fenmu++) {

                    // 分母和分子不能同时为偶数

                    if (0 == fenzi % 2 & 0 == fenmu % 2)

                        continue;

                    // 取值

                    float value = (float) fenzi / fenmu;

                    // 取离黄金分割点的差值

                    float diff = value - breakPoint;

                    // 绝对值

                    diff = diff < 0 ? 0 - diff : diff;

                    // 找出最小的差值

                    if (diff < minDiff) {

                        minDiff = diff;

                        answerFenzi = fenzi;

                        answerFenmu = fenmu;

                    }

                }

            }

       

            System.out.println("离黄金分割点(" + breakPoint + ")最近的两个数相除是:" + answerFenzi + "/" + answerFenmu + "="

                    + ((float) answerFenzi / answerFenmu));

        }

    }

       

       

    二、练习--水仙花数

    水仙花数定义:

    1. 一定是3位数

    2. 每一位的立方,加起来恰好是这个数本身,比如153=1*1*1+5*5*5+3*3*3

    寻找所有的水仙花数

       

    要求效果:

       

    public class HelloWorld {

        public static void main(String[] args) {

            for (int i = 100; i < 1000; i++) {

                int baiwei = i / 100;

                int shiwei = i / 10 % 10;

                int gewei = i % 10;

                int cube = baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei;

                if (cube == i) {

                    System.out.println("找到水仙花数:" + i);

                }

            }

        }

    }

       

    三、练习--小学算术题

    题目:

    提示使用多层循环嵌套解决下图中的问题

    官方答案:

    public class HelloWorld {

        public static void main(String[] args) {

            int a = 0;

            int b = 0;

            int c = 0;

            int d = 0;

       

            for (a = -100; a <= 100; a++) {

                for (b = -100; b <= 100; b++) {

                    for (c = -100; c <= 100; c++) {

                        for (d = -100; d <= 100; d++) {

                                if(a+b==8&&c-d==6&&a+c==14&&b+d==10) {                               

                                    System.out.println("a:"+a);

                                    System.out.println("b:"+b);

                                    System.out.println("c:"+c);

                                    System.out.println("d:"+d);                                

                                }

                        }

                    }

                }

            }

        }

    }

       

  • 相关阅读:
    千万级规模高性能、高并发的网络架构经验分享
    CPU高问题排查
    Worker+MQ解惑
    HashMap解惑
    配置时间同步时,遇到同步无法成功的解决方法
    Django基础—— 1.WEB框架介绍
    html5兼容性问题
    jQuery基础——节点操作
    jQuery基础——基本操作
    jQuery基础——选择器
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/10773041.html
Copyright © 2020-2023  润新知