NASA的飛船飛了9年、走了48億公里終于拍到了冥王星送給我們的代表愛的心形,表達自己希望脫離單身狗命運的愿望。
幾乎在同時,三里屯的一對情侶用了1月10秒進行高頻率“0厘米、-10厘米、0厘米、-10厘米”身體距離的循環,用一首“優衣庫里脫衣褲,一庫一庫”的史詩向冥王星致敬。
在單身狗還沒從這樣的被虐循環打擊中緩過神來,9天后,NASA這個小賤人又發布了“我們發現了‘第二個地球’”的消息。地球這個球貨也找到了另外一個“二球”,而且還比地球大60%!竟然比球貨還大!
慢著!既然有“第二個地球”,我在這個地球上找不到我的“小公舉”,那我是不是在“第二個地球”上找到我的“小公舉”呢!
她一定美的讓人窒息!
說到就要能做到
我去車站買車票
票員問我去哪里
我說“去 開普勒-452b 西站,有沒有票?”
好吧,此處不留爺自有留爺處,處處不留爺,我去優衣庫……說錯了!處處不留爺,我去停車庫!
那么問題來了!已知如下條件:
1)如鵬網辦公地址是北京市昌平區珠江摩爾國際中心
2)珠江摩爾在京藏高速北安河出口
3)高速收費站收費員的QQ號是10001
4)這個QQ號被一個叫馬化騰的盜走了
求如鵬網辦公室開車到“開普勒-452b 西站”要用幾個小時。
距離1400光年,我的車是“保時捷 6 Plus版”,車速200公里/小時。
解:
1)我們知道(愛誰知道誰知道),光一秒走300000公里,一年是60*60*24*365秒,因此光一年走300000*60*60*24*365公里。
2)1400光年就是1400*300000*60*60*24*365公里
3)我的“保時捷 6 Plus版”200公里/小時,因此只要1400*300000*60*60*24*365/200小時就可以到了。
1400*300000*60*60*24*365/200是多少小時呢?我是程序員,偉大的軟件攻城獅,我要用寫代碼來算!
java代碼:
int hours = 1400*300000*60*60*24*365/200;System.out.
運行結果是
![]()
你妹呀,什么破電腦呀!怎么算出負數來了呀!
![]()
因為int是用32位表示的,最大值是2147483647,超過他的數就會發生溢出。
聰明的如鵬網小鵬友可能會想到“用long,它比int范圍更大”,但是long的范圍也是有限的,進行天文級的運算,long也“浪不起來”了。
如果要想表示超級大的數,就不能用int、long等原始數據類型,要自己用byte數組模擬表示數組,然后自己實現四則運算。有的編程語言類庫中內置了超級大的類,省的自己去寫了,比如Java、.Net中都有BigInteger類。
下面是在Java中用BigInteger算去找“二球”用的時間
int 一年的秒數 = 60*60*24*365;BigInteger 一光年的公里數 = new BigInteger("300000").multiply(new BigInteger(String.valueOf(一年的秒數)));BigInteger 距離二球的公里數 = 一光年的公里數.multiply(new BigInteger("1400"));System.out.println("您距離二球只有:"+距離二球的公里數+"公里");BigInteger hours = 距離二球的公里數.divide(new BigInteger("200"));System.out.println("你piapia的飛,只要"+hours+"小時就可以和自己的女神papapa了");啟動運行,秒算得出結果:你piapia的飛,只要66225600000000小時就可以和自己的女神papapa了。
66225600000000小時是多少年呢?
int 一年的小時數 = 365*24; BigInteger years = hours.divide(new BigInteger(String.valueOf(一年的小時數)));System.out.println("只有"+years+"年哦");
運行之:只有7560000000年哦
就也是只要短短75.6億年嘛!
![]()
附錄:C#/.Net版代碼
using System;using System.Numerics;//需要添加對System.Numerics.dll程序集的引用 namespace 如鵬網Demo{ class Program { static void Main(string[] args) { int 一年的秒數 = 60*60*24*365; BigInteger 一光年的公里數 = new BigInteger(一年的秒數) * 300000; BigInteger 距離二球的公里數 = 一光年的公里數 * 1400; Console.WriteLine("您距離二球只有:"+距離二球的公里數+"公里"); BigInteger hours = 距離二球的公里數 / 200; Console.WriteLine("你piapia的飛,只要"+hours+"小時就可以和自己的女神papapa了"); int 一年的小時數 = 365*24; BigInteger years = hours/new BigInteger(一年的小時數); Console.WriteLine("只有" + years + "年哦"); Console.ReadKey(); } }}
因為C#有運算符重載,寫出來的代碼比Java簡單太多、優美太多了!
![]()
打個廣告:
騷氣十足的如鵬網招募如下崗位,歡迎加入:
1、IOS學科教學合伙人、講師
2、Android講師
3、.Net開發工程師
4、網頁設計師
崗位JD詳見:http://www.rupeng.com/joinus.shtml
聯系郵箱:yzk@rupeng.com
新聞熱點
疑難解答