怎么样用python编写2的n次方_「2的n次方」[Python] 2的N次方 - 金橙教程网

2的n次方

[Python] 2的N次方

题目描述

对于一个整数N(512 <= N <= 1024),计算2的N次方并在屏幕显示十进制结果。

输入描述

输入一个整数N(512 <= N <= 1024)

输出描述

2的N次方的十进制结果

示例

输入

512

输出

13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096

链接

链接: link.

思路1

python的暴力解法…直接进行N次方计算print 2**int(raw_input())

思路2

模拟乘法计算。以下代码仅供思路上的参考。因为,当N很大的时候,程序无法运行…

希望有大神指出应该如何优化 o(╥﹏╥)on = int(raw_input())

a = [int(0) for i in range(2**n)]

lon = len(a)

a[-1] = 1

flag = 0

k = 0

ans = []

while n>0:

for i in range(lon-1,-1,-1):

t = a[i] * 2 + flag # 保存结果

a[i] = t % 10 # 对数值进行更新,满十进一

flag = t / 10 # 进位标志

n -= 1

for j in range(lon):

if a[j] != 0:

k = j

break

for ii in range(k,lon):

ans.append(a[ii])

anss = int(''.join(Map(str,ans)))

print anss

以上代码存在一个问题,N的数值太大会报‘OverflowERROR’ ,所以只适用于N比较小的情况下(N为20的时候,程序的运行时间就达到了5s以上…)

o(╥﹏╥)oOverflowError: range() result has too many items

相关阅读

不少朋友觉得每次登录win10系统的时候都需要输入登录密码很麻烦,有没有win10取消登陆密码的方法呢?别着急,方法肯定是有的,下面小编就

详细介绍 Win8.1预览版下载正式发布,大家可以选择通过Windows Store应用更新或者下载Win8.1预览版镜像进行安装。微软已经面

阿里聚合直播盒子源码AlijuheCMS™2019版V1.0 for Android版本采用JAVA语言原生开发,运行流畅,模块化开发,APP前台由直播、小视频、

场景

初学SpringBoot,经常要在application.properties/yml中对某些导入的包进行初始化配置例如在mysql中,我们要配置url,username,p

办公人员必备知识~!用Word排版完成以后我们该做些什么事情呢?那当然是打印了,今天我们接着上次的《设置默认打印机》讲:在XP系统和Win

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值