k好数(c++)排列组合算法
问题描述:
k好数(c++)排列组合算法
K好数(K-Good Number)
如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个.给定K、L,求L位K好数的数目.
输入格式:
从文件读入数据,第一行为K、L,其中K
答
从最小到最大循环一遍也会超时……?
看来是一道简单的acm题目了……那个你不觉得这个应该自己想?
当L=2时,N=(K-2)^2+K-1;
记为N(K,2);
N(K,3)=(K-1)*N(K,2)-2*N(K,1);
N(K,n)=(K-1)*N(K,n-1)-2*N(K,n-2);
好了,就这么回事,你递归吧……
我应该是没算错的哈……
这里N(K,1)=K-1
不包括0的