zoukankan      html  css  js  c++  java
  • 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);                                

                                }

                        }

                    }

                }

            }

        }

    }

       

  • 相关阅读:
    结对第一次—原型设计(文献摘要热词统计)
    第一次作业-准备篇
    201771010135杨蓉庆《面向对象程序设计(java)》第二周学习总结
    杨蓉庆201771010135《面向对象程序设计(java)》第一周学习总结
    2019 SDN阅读作业
    第01组 Alpha冲刺 (2/4)
    2019 SDN上机第3次作业
    第01组 ALPHA冲刺(1/4)
    2019SDN上机第二次作业
    2019 SDN上机第1次作业
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/10773041.html
Copyright © 2011-2022 走看看