网易笔试,牛牛铺地毯求解答,感觉也没毛病啊😓
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int n = scanner.nextInt();
for (int i = 0; i < n; ++i) {
int nn = scanner.nextInt();
System.out.println(f(nn));
}
}
}
public static long f(int n) {
if (n <= 0) return 0;
else if (n == 1) return 1;
else if (n == 2) return 2;
else if (n == 3) return 4;
long[] dp = new long[n + 1];
dp[0] = 0;
dp[1] = 1;
dp[2] = 2;
dp[3] = 4;
for (int i = 4; i <= n; ++i) {
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
}
return dp[n];
}
}


全部评论
(3) 回帖