哪个大神能帮忙用python做一下这个程序,真的万分感谢

 我来答
大话残剑
2015-11-16 · TA获得超过2217个赞
知道大有可为答主
回答量:1137
采纳率:56%
帮助的人:688万
展开全部

题目讲的挺复杂,这么做行不行

t = input('Input: ')
l = 1 / 200 
for i in range(int(t)):
    l = l + l
print(str(l) + '厘米')
追问
成!谢谢!
就这样就行了吗
y203344
2015-11-16 · TA获得超过989个赞
知道小有建树答主
回答量:755
采纳率:66%
帮助的人:469万
展开全部

首先1/200厘米,需要用浮点数运算,得出纸的厚度t。再分析一下,输入0折0次就是原始厚度t*1(2的0次方乘以厚度),输入1就是2倍的原始厚度t*2(2的1次方乘以厚度),输入2是4倍原始厚度(2的2次方乘以厚度),输入3就是8倍原始厚度(2的3次方乘以厚度)……

可见,折纸次数n,最终那么厚度就是2^n次方乘以厚度。

这就是题目中为什么要求用迭代器。循环迭代器只会顺序读取,不会再头开始循环,用于处理大数据。iter(),那就需要用next()来取值。参考如下:

t = float(1)/200                         #计算原始厚度
print 'Thickness is :',t,'cm'
iterator = iter([2**i for i in range(31)]) #迭代器 从2的0次方到2的30次方  
n = input('count:')                       #输入折纸次数
for i in range(31):                       
  if i == n :
     print 'final thickness of the paper is:',iterator.next()*t,'cm'
     break
  iterator.next()                         #循环列表range(31)和迭代器iterator,当值等于输入的折纸次数时,打印厚度,否则生成器取下一值,并再做判断

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
剑扰龙真000
2015-11-16 · 超过46用户采纳过TA的回答
知道答主
回答量:154
采纳率:100%
帮助的人:35.7万
展开全部
有递归,我感兴趣. 来嘛小妞,先开价
追问
你开吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式