问题描述
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?
问题分析
1、不对折(对折零次),从中间切一刀,得到 2 根面条, 2 = 2
2、对折一次,从中间切一刀,得到 3 根面条, 3 = 2 + 2^0
3、对折两次,从中间切一刀,得到 5 根面条, 5 = 2 + 2^0 + 2^1
4、对折三次,从中间切一刀,得到 9 根面条, 9 = 2 + 2^0 + 2^1 + 2^2
…
11、对折十次,从中间切一刀,得到 2 + 2^0 + 2^1 + 2^2 + … + 2^9 根面条
Python代码详解
其中使用的是循环和指数运算
def noodle():
a=10
x = 2 ** a + 1
print("对折10次从中间切一刀得到的面条数是:",x)
noodle()
如果需要计算对折多次后的面条数量,则可用以下代码
def noodle():
a=int(input("请输入对折条数:"))
x = 2 ** a + 1
print("对折",a,"次从中间切一刀得到的面条数是:",x)
noodle()