python-数列问题

[题目描述]
已知一个数列的前 3 个数为 3, 4 , 5 ,以后每个数为前 3 个数的和,编程序求此数列的第 N 项。
输入格式:
输入 N 。
输出格式:
求出第 N 项的值。
样例输入
28
样例输出
25527448
数据范围
对于 100% 的数据,保证 N≤35 。
来源/分类(难度系数:一星)


完整代码展示:
a=int(input())
s1=3
s2=4
s3=5
b=3
c=[3,4,5]
while b<a+1:
    s1=s1+s2+s3
    c.append(s1)
    b+=1
    if b==a:
        break
    s2=s2+s3+s1
    b+=1
    c.append(s2)
    if b==a:
        break
    s3=s3+s1+s2
    c.append(s3)
    b+=1
    if b==a:
        break
if a<=3:
    print(c[a-1])
else:
     print(c[-1])


代码解释:
“a=int(input())
s1=3
s2=4
s3=5
b=3
c=[3,4,5]         ”,让用户输入所求数列的第几项。并将数列的前三项分别赋给s1,s2,s3,接着将s1,s2,s3存入列表c中。设置循环密码子为b,并将b的初始值设为3。
“while b<a+1:
    s1=s1+s2+s3
    c.append(s1)
    b+=1
    if b==a:
        break
    s2=s2+s3+s1
    b+=1
    c.append(s2)
    if b==a:
        break
    s3=s3+s1+s2
    c.append(s3)
    b+=1
    if b==a:
        break            ”,未循环至所求项时,将第四项设为s1,s1=s1+s2+s3(第四项的值为前三项的和),将s1存入列表c中(默认添加位置为c的末尾)。接着令b=b+1,判断b是否为a(判断是否已循环至第a项)。如果a==b,则中止循环;否则继续循环。下面的s2,s3同理。每次求出并添加进c中后面的一项,,就让b加1,直至b==a,循环结束。
“if a<=3:
    print(c[a-1])
else:
    print(c[-1]   ”,当a<=3时,打印列表c中的c[a-1]项;否则打印c的末尾项c[-1]。


运行效果展示:

0cd5fec57e904a8ebaaecc62af244603.jpg

3595658bd2e749a6904c0189823836cd.jpg 

         (声明:以上内容均为原创)

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西农小陈

感谢大家的支持与鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值