考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0.
考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0.
例:
1010230 是有效的7位数
1000198 无效
0001235 不是7位数, 而是4位数.
给定两个数N和K, 要求计算包含N位数字的有效K-进制数的总数.
假设2 <= K <= 10; 2 <= N; 4 <= N+K <= 18.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] sz = new int[n + 1];
for (int i = 1; i <= n; i++) {
if (i == 1)
{
sz[i] = k - 1;
}
else if (i == 2)
{
sz[i] = k * (k - 1);
}
else
{
sz[i] = (sz[i - 1] + sz[i - 2]) * (k - 1);
}
}
System.out.print(sz[n]);
}
}