#include <stdio.h>
int count(int N,int K)
{
if(N==0)
return 1;
else if(N==1)
return K-1;
else
return (K-1)*(count(N-1,K)+count(N-2,K));
}
int main()
{
int N,K;
scanf("%d%d",&N,&K);
printf("%d\n",count(N,K));
return 0;
}
题目描述
考虑包含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.
输入
两个十进制整数N和K
输出
十进制表示的结果
样例输入 Copy
2 10
样例输出 Copy
9 count(当前位为0) = count(下一位不为0) count(当前位不为0)= ( count(下一位为0) + count(下一位不为0) ) * (K - 1)