题目描述
星际战争开展了100年之后,NowCoder终于破译了外星人的密码!
他们的密码是一串整数,通过一张表里的信息映射成最终4位密码。
表的规则是:
n对应的值是矩阵X的n次方的左上角,
如果这个数不足4位则用0填充,
如果大于4位的则只输出最后4位。
以下是本篇文章正文内容,下面案例可供参考
解题思路
由题意知,此为斐波那契
f(n) = f(n-1) + f(n-2)
注意格式化输出:
只取四位整数,且不足四位补0
代码如下
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//初始化
int[] nums = new int[10001];
nums[1]=1;
nums[2]=2;
for (int i = 3; i < 10001; i++) {
nums[i] = nums[i-1]+nums[i-2];//斐波那契数列
nums[i] = nums[i]%10000;//取最后四位的值
}
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
StringBuilder sb = new StringBuilder();
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
int xi = sc.nextInt();
sb.append(String.format("%04d",nums[xi]));//格式化输出,表示只输出四位,不足填充0
}
System.out.println(sb);
}
}
}