哪个大神能帮忙用python做一下这个程序,真的万分感谢
3个回答
展开全部
首先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,当值等于输入的折纸次数时,打印厚度,否则生成器取下一值,并再做判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有递归,我感兴趣. 来嘛小妞,先开价
追问
你开吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询