Java之“珠穆朗玛峰”

简介: Java之“珠穆朗玛峰”

前言

故事分享:相传印度有位外来的大臣跟国王下棋,国王输了,就答应满足他一个要求:在棋盘上放米粒。第一格放1粒,第二格放2粒,然后是4粒,8粒,16粒…直到放到64格。国王哈哈大笑,认为他很傻,以为只要这么一点米。按照大臣的要求,放满64个格,需米18446744073709551615粒,是二十位的数字。这些米别说倾空国库,就是整个印度,甚至全世界的米,都无法满足这个大臣的要求!

故事中的国王认为只需要一点米,但实际全世界的米加起来都无法满足这个要求,相同原理可知,如果用一张很小的纸进行反复折叠,那么是不是要折叠几千次才能达到珠穆朗玛峰的高度呢?


问题描述

世界上最高山峰是珠穆朗玛峰(8844.43米)。假如我有一张足够大的纸,它的厚度是0.1毫米。那么请问,我折叠多少次恰好可以折到珠穆朗玛峰的高度?


解决方法

已知珠穆朗玛峰的高度为8844430毫米,并且纸的厚度为0.1毫米。纸折叠一次其倍数翻一翻时,由于无法知晓折叠的次数,在这种情况下更适合使用while循环。


实验结果与讨论

通过定义变量,使用while循环语句等证明纸张折叠27次即可达到珠穆朗玛峰的高度,能够解决开头提出的问题。

代码清单

package sctu.edu.test.com;
public class 
珠穆朗玛峰 {
    public static void main(String[]  args) {
        int count = 0;
        double paper =0.1;//
定义纸张的厚度
        int Mountain=8844430;//
定义珠穆朗玛峰的高度
        while(paper <= Mountain){//
条件判断
            paper *= 2;
            count++;
        }
        System.out.println("
需要折叠:" + count + "");
    }
}


结语

针对“珠穆朗玛峰”问题,通过定义countpaperMountain三个变量值,再结合while语句,最终实现折叠次数。在对“珠穆朗玛峰”案例的解决过程中进一步巩固while语句,并将继续Java的巩固联系。


目录
相关文章
|
4月前
|
存储 Java PHP
【零基础学Java】—初识Java(一)
【零基础学Java】—初识Java(一)
|
8月前
|
算法 Java
Java快读快写
Java快读快写
|
算法 Java
棋盘覆盖问题(Java)
棋盘覆盖问题(Java)
140 0
棋盘覆盖问题(Java)
|
Java
Java常见的坑(二)
你猜上述程序输出的是什么? 是 ABC easy as 123 吗? 你执行了输出操作,你才发现输出的是 ABC easy as [C@6e8cf4c6 ,这么一串丑陋的数字是什么鬼? 实际上我们知道字符串与任何数值的相加都会变为字符串,上述事例也不例外, numbers输出其实实际上是调用了Object.toString()方法,让numbers转变为'[c' + '@' + 无符号的十六进制数。
39 0
|
Java 测试技术
1070 结绳(JAVA)
给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。
1070 结绳(JAVA)
|
安全 Oracle Java
Java小史:从1到5
介绍Java从1到5的版本变化
181 0
|
Java 程序员 C++
|
消息中间件 NoSQL 前端开发
|
存储 安全 算法
一篇文章让你真正了解Java
“你学习一门技术的最佳时机是三年前,其次是现在。”这句话对于哪一种行业都很适用,如果你已经学习过Java,那么恭喜你你很有先见之明,如果你并不了解Java,这篇文章带你快速掌握Java的几个核心知识点。