问题 1117: K-进制数

2020-09-11 15:06:35 浏览数 (1)

考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0.

例: 1010230 是有效的7位数 1000198 无效 0001235 不是7位数, 而是4位数.

给定两个数N和K, 要求计算包含N位数字的有效K-进制数的总数.

假设2 <= K <= 10; 2 <= N; 4 <= N K <= 18.

思路:DFS

代码语言:javascript复制
#include<bits/stdc  .h>

using namespace std;
char s[10];
int res = 0;
int n,k;
void dfs(int ans){
	if(ans == n) res  ;
	else for(int i=0;i<k;i  ){
		s[ans] = i   '0';
		if(s[0]=='0' || (s[ans]=='0' && s[ans-1]=='0') ) continue;
        else dfs(ans 1);
	}
}
int main(){
	cin>>n>>k;
	dfs(0);
	cout<<res<<endl;
	return 0;
} 
dfs

0 人点赞