为了纪念我终于看懂了k好数这题是什么意思,特此留念。(hhhhh)
题目:如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。
输入L和K
K表示K进制(就是二进制、十进制这种,我一开始这都没看懂!!!)所以4进制就是0-3组成的数。
2位数,就很好理解两位数嘛
但我们都知道两位数可以由一位数构成:
如果我们定义一个数组list_[j],j表示个位数的数值,list_表示个数的话就可以有下面这个表:
j | 0 | 1 | 2 | 3 |
---|---|---|---|---|
list_ | 1 | 1 | 1 | 1 |
然后我们在用一位数组成我们需要的两位数
十位\个位 | 0 | 1 | 2 | 3 |
---|---|---|---|---|
0 | ||||
1 | 11 | 13 | ||
2 | 20 |