题目描述
考虑包含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
样例输入
2
10
样例输出
90
详细解释参考:https://blog.dotcpp.com/a/56751
代码实现
#include<stdio.h>
int main()
{
int res_0,res_1,i,N,K;
while(scanf("%d%d",&N,&K)!=EOF)
{
res_1=K-1;
res_0=1;
for(i=2;i<=N;i++)
{
int last_res=res_1;
res_1=(K-1)*(res_1+res_0);
res_0=last_res;
}
printf("%d\n",res_1);
}
return 0;
}