题目链接:
https://www.nowcoder.com/questionTerminal/34f17d5f2a8240bea661a23ec095a062
解题思路:
很难发现,这是斐波那契数列
要是发现了,这题也就好做了
import java.util.*;
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]));
}
System.out.println(sb);
}
}
}
String.format()
函数: 将括号里的量, 按照自己想要的格式拼接成一个字符串, 然后输出, 即将nums[xi]
按照"%04d"
输出
"%04d":
十进制数, 输出4位, 不足4位就补0, 如果本身大于4位, 就正常输出