蓝桥杯20190324 数列求值

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

给定数列 1, 1, 1, 3, 5, 9, 17, ⋯,从第 4 项开始,每项都是前 3 项的和。

求第 20190324 项的最后 4 位数字。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

我的解题思路: 

      直接上来就是暴力求解,直接求出第20190324项的数,在想办法求出后四项。怎么求出后四项呢?

      我想的是将int转为string,在求后四项,但是感觉好麻烦,于是我就去CSDN了。

      我看到了一位博主,他用MOD10000,我顿时心中惊叹,对哦,妙啊,我怎么没想到。

      好的,我原以为问题就这么完美的解决了,可是没完,答案报错了,结果如下:

     于是乎,我又看了那位博主的求解过程,好家伙,人家是在循环里MOD了。这样就可以避免溢出。

        我一开始还没搞懂是为啥,毕竟我直接求第20190423项数的结果是856830691,而int型最大可以表示整数2147483647,我觉得没溢出。后来问了一个同学,他就让我输出100项试试。我一输,好家伙,-1081317309,溢出了。

       通过这题,我学习到了以下几点:

       1)如何求一个整数的后四位数,那就是MOD

       2)注意考虑暴力求解会不会溢出,以及如何检测溢出,可以通过输出较小的项数判断是否溢出。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值