美文网首页
和果子一起来做题-Project Euler-16-R语言版本

和果子一起来做题-Project Euler-16-R语言版本

作者: 9d760c7ce737 | 来源:发表于2018-01-28 18:23 被阅读17次

    今天是第16题。十分简单。
    先计算一个特别大的数字,然后计算这些数字的和。

    21^5 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.
    What is the sum of the digits of the number 2^1000?
    

    这个题目十分简单,难的是技巧,在R语言里面无法以正常形式显示大数字,都自动转换为科学计数法。
    前面讲过可以用format(x,scientific =F)来解决,但是在这一题是失效的。
    有一个包专门处理超大数字,就是gmp

    library(gmp)
    digits <- as.bigz(2^1000) # Define number
    answer <- sum(as.numeric(unlist(strsplit(as.character(digits), ""))))
    

    看一下答案。

    > answer
    [1] 1366
    

    这样的技巧只有在有需求的时候才会知道。在过去的16题中,我自己复习了很多小技巧。
    长期更新下去,肯定有收获,所以即使在今天有神贴出现的情况下,我还是要更新。


    分割线:
    目前看来,这些题目,只要不是追求速度,基本上都能通过遍历的方式得出答案,
    但是我已经被卡在了第18题,那个题目暗示:
    最好不要通过遍历的方式来解这道题,因为之后会出现一个不容易被遍历的题目。
    飞哥说,算法比算力重要,当时刚开始的时候,觉得这些题目都太简单,做久了会很厌烦。
    现在看来,一点没有!

    每天把这些题当成休息,不用开组会汇报,这本身时间很自在的事。
    再加上我已经连续唠嗑16天,每天的分割线就是我的小空间,我有那么多的事还没有讲呢。
    如果大家忙完了这一阵,就一起来做题吧。

    相关文章

      网友评论

          本文标题:和果子一起来做题-Project Euler-16-R语言版本

          本文链接:https://www.haomeiwen.com/subject/yxezaxtx.html