zoukankan      html  css  js  c++  java
  • java作业——Day005

    JavaScript 问答题

    解释一下下面代码的输出。

    console.log(0.1 + 0.2); //0.30000000000000004
    console.log(0.1 + 0.2 == 0.3); //false

    JavaScript 中的 number 类型就是浮点型,JavaScript 中的浮点数采用IEEE-754 格式的规定,这是一种二进制表示法,可以精确地表示分数,比如 1/2,1/8,1/1024,每个浮点数占 64 位。但是,二进制浮点数表示法并不能精确的表示类似 0.1 这样 的简单的数字,会有舍入误差。

    由于采用二进制,JavaScript 也不能有限表示 1/10、1/2 等这样的分数。在二进制中,1/10(0.1)被表示为 0.00110011001100110011…… 注意 0011 是无限重复的,这是舍入误差造成的,所以对于 0.1 + 0.2 这样的运算,操作数会先被转成二进制,然后再计算:
    0.1 => 0.0001 1001 1001 1001…(无限循环)
    0.2 => 0.0011 0011 0011 0011…(无限循环)

    双精度浮点数的小数部分最多支持 52 位,所以两者相加之后得到这么一串 0.0100110011001100110011001100110011001100... 因浮点数小数位的限制而截断的二进制数字,这时候,再把它转换为十进制,就成了 0.30000000000000004。

    MySQL 编程题

    表名 student_score

    namecoursescore
    张三 语文 81
    张三 数学 75
    李四 语文 76
    李四 数学 90
    王五 语文 81
    王五 数学 100
    王五 英语 90

    查询出「张」姓学生中平均成绩大于 75 分的学生信息。

    SELECT *
    FROM student_score
    WHERE name IN (SELECT name
        FROM student_score
        WHERE name LIKE '张%'
        GROUP BY name
        HAVING AVG(score) > 75)

    Java 编程题

    猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

    package test;
    
    /** 
     * 程序分析:采取逆向思维的方法,从后往前推断
     * @author CUI
     */
    public class Tl6 {
        public static void main(String[] args) {
            int num = 1;
            for (int i = 1; i <= 9; i++) {
                num = (num + 1) * 2;
            }
            System.out.println("第一天共摘了" + num + "个桃子");
        }
    }
  • 相关阅读:
    Unique Binary Search Trees 解答
    Unique Paths II 解答
    Unique Paths 解答
    Maximum Subarray 解答
    Climbing Stairs 解答
    House Robber II 解答
    House Robber 解答
    Valid Palindrome 解答
    Container With Most Water 解答
    Remove Duplicates from Sorted List II 解答
  • 原文地址:https://www.cnblogs.com/ntdx-zhoulei/p/11288138.html
Copyright © 2011-2022 走看看