题目描述
NowCoder号称自己已经记住了1-100000之间所有的斐波那契数。为了考验他,我们随便出一个数n,让他说出第n个斐波那契数。当然,斐波那契数会很大。因此,如果第n个斐波那契数不到6位,则说出该数;否则只说出最后6位。
输入
输入有多组数据。
每组数据一行,包含一个整数n (1≤n≤100000)。
输出
对应每一组输入,输出第n个斐波那契数的最后6位。
例子
输入
1
2
3
4
100000
输出
1
2
3
5
537501
思路
但现在的和上述斐波那契不同,现在第一项是1,第二项是2,所以在写代码有些变动
如果提前将第1到100000个数斐波那契数存储到数组中,直接根据输入的数据查询就可以通过了(大于六位数的时候直接将后六位存储进去,接下来后六位和后六位加和,运算下一个斐波那契数时不影响后六位的值。
需要注意的是如果和100000取余后是5位数呢?也就是倒数第六位数刚好是0的情况,例如:假设有一个斐波那契数是1024568,那么和100000取余后的数为24568了,但是如果取后六位则应该与1000000取余所以直接将大于等于6位数的斐波那契数(n >= 29)进行%06d的格式输出即可。
代码
import java.util.