【LeeCode】赛题01:Python解答切面筋题目

【LeeCode】赛题01:Python解答切面筋题目,第1张

题目001:切面条

一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?

分析:
对折次数切一刀根数迭代
0122
1132 + 2^ 0
2152 + 2^ 0 + 2^ 1
3192 + 2^ 0 + 2^ 1 +2^2
n1?

我们发现除了首次不进行对折次数为0,其余进行对折后,再切一刀符合等比函数进行求和:
等比数列中的每一项可以使用 pow()函数
求和可以使用循环表示
问题解决了!!!

求解:
def cut_pickle(cut_num, sum=2):
    if cut_num == 0:
        sum = 2
    else:
        for i in range(cut_num+1, 1, -1):
            sum += pow(2, i-2)
    return sum

if __name__ == '__main__':
    sum = cut_pickle(10)
    print(sum)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/917024.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存