天天看點

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 + "次");

     }

 }

Java之“珠穆朗瑪峰”

結語

針對“珠穆朗瑪峰”問題,通過定義count、paper、Mountain三個變量值,再結合while語句,最終實作折疊次數。在對“珠穆朗瑪峰”案例的解決過程中進一步鞏固while語句,并将繼續Java的鞏固聯系。

實習編輯:衡輝

繼續閱讀