题目描述
考虑包含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
#include<stdio.h>
int fun(int n,int k){
if(n==1){
return k-1;
}
else if(n==2){
return k*(k-1);
}
else{
return (k-1)*(fun(n-1,k)+fun(n-2,k));
}
}
int main()
{
int n,k,t;
scanf("%d%d",&n,&k);
t=fun(n,k);
printf("%d",t);
return 0;
}
这道题的思路可以去寻找n,k和总数之间的关系再采取递归的方法