• 让代码带你飞:去第二个地球要飞多久


    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代码:

    1
    2
    int hours = 1400*300000*60*60*24*365/200;
    System.out.println("你piapia的飞,仅仅要"+hours+"小时就能够和自己的女神papapa了");

     

    执行结果是

     

       你妹呀,什么破电脑呀。怎么算出负数来了呀!

    blob.png

     

     

     

     

    由于int是用32位表示的。最大值是2147483647。超过他的数就会发生溢出。

     

    聪明的如鹏网小鹏友可能会想到“用long,它比int范围更大”。可是long的范围也是有限的,进行天文级的运算,long也“浪不起来”了。

    假设要想表示超级大的数,就不能用int、long等原始数据类型。要自己用byte数组模拟表示数组。然后自己实现四则运算。有的编程语言类库中内置了超级大的类,省的自己去写了,比方Java、.Net中都有BigInteger类。

     

    以下是在Java中用BigInteger算去找“二球”用的时间

    1
    2
    3
    4
    5
    6
    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小时是多少年呢?

    1
    2
    3
    int 一年的小时数  = 365*24
    BigInteger years = hours.divide(new BigInteger(String.valueOf(一年的小时数)));
    System.out.println("仅仅有"+years+"年哦");

      

       执行之:仅仅有7560000000年哦

         就也是仅仅要短短75.6亿年嘛!

     

     

    附录:C#/.Net版代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    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开发project师

    4、网页设计师

     

    岗位JD详见:http://www.rupeng.com/joinus.shtml   

    联系邮箱:yzk@rupeng.com

    如鹏网.Net培训班正在报名。有网络的地方就能够參加如鹏网的学习。学完就能高薪就业。点击此处了解

     

    三年前仅仅要懂“三层架构”就能够说“精通分层架构”;如今则须要懂IOC(AutoFac等)、CodeFirst、lambda、DTO等才值钱。

    三年前仅仅要会SQLServer就能够说自己“精通数据库开发”;如今则需还须要掌握MySQL等开源数据库才干说是“.Net开源”时代的程序猿。

    三年前仅仅要会进行用户上传内容的安全性处理就可以。如今则须要熟悉云存储、CDN等才干在云计算时代游刃有余。

    三年前仅仅要掌握Lucene.Net就会说自己“熟悉站内搜索引擎开发”;如今大家都用ElasticSearch了。你还用Lucene.Net就太老土了;

    三年前发邮件还是用SmtpClient。如今做大型站点发邮件必须用云邮件引擎。

    三年前缓存就是Context.Cache;如今则是Redis、Memcached的天下。

    如鹏网再次引领.Net社区技术潮流!点击此处了解如鹏网.Net最新课程



  • 相关阅读:
    什么叫大数据,与云计算有何关系
    未来机器时代 马云担心的居然是男性找不到工作
    浏览器原生登陆验证实现
    eclipse-java-style.xml
    tomcat和应用集成
    简单springboot及springboot cloud环境搭建
    maven module
    maven scope
    java ReentrantLock Condition
    抓取动态网页
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6927982.html
Copyright © 2020-2023  润新知