加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在不使用BigInt的情况下计算为2 ^ 1000的总和

发布时间:2020-12-15 08:21:52 所属栏目:百科 来源:网络整理
导读:正如你们中的一些人可能会注意到这个问题是从 Project Euler开始的 problem 16.我用C#4.0的新“bigInt”功能解决了这个问题,这个功能相当简单,但也没有真正学到我应该学到的东西.我假设因为它是2 ^ 1000会有某种位移解决方案,但我无法弄清楚它究竟是如何工作
正如你们中的一些人可能会注意到这个问题是从 Project Euler开始的 problem 16.我用C#4.0的新“bigInt”功能解决了这个问题,这个功能相当简单,但也没有真正学到我应该学到的东西.我假设因为它是2 ^ 1000会有某种位移解决方案,但我无法弄清楚它究竟是如何工作的.

有没有人知道如何在不使用bigint的情况下计算2 ^ 1000?

解决方法

这是一种相当天真的方式,只需使用数字列表(或数组)在python中执行此操作
digits = [1]
for n in range(1000):
    newdigits = []
    carry = 0
    for digit in digits:
        s = 2*digit+carry
        carry = s/10
        s = s%10
        newdigits.append(s)
    if carry:
        newdigits.append(carry)
    digits = newdigits
print "".join(map(str,reversed(digits)))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读