题目链接

题目描述

考虑包含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

分析:

递归找出当前这个k进制的n位数的所有可能的情况,每次的话只考虑当前位,如果当前是第一位的话肯定不能为0,如果不是第一位的话,当前位和前一位不能全部为0,这是不合法的。

排除掉这两种情况,剩下的所有的情况都是合法的。

代码:

#include<stdio.h>
#include<iostream>
using namespace std;
int a[20],n,k;
int cnt;
void dfs(int s)
{
if(s==n)
{
cnt++;
return;
}
for(int i=0; i<k; i++)
{
//首位为0的情况 当前位和前一位都为0的情况 都是不需要考虑的
if((s==0&&i==0)||(s>0&&i==0&&a[s-1]==0))
continue;
a[s]=i;
dfs(s+1);
}
}
int main()
{
while(~scanf("%d%d",&n,&k))
{
cnt=0;
dfs(0);
printf("%d\n",cnt);
}
return 0;
}

最新文章

  1. 在ASP.NET中基于Owin OAuth使用Client Credentials Grant授权发放Token
  2. chpasswd命令
  3. sublime text 3 配置php开发环境
  4. hdu 5876 ACM/ICPC Dalian Online 1009 Sparse Graph
  5. java获取时间戳的方法
  6. CPU MPU MCU SOC SOPC关系及区别
  7. js常见数字处理整理
  8. 国内银行CNAPS CODE 查询
  9. NPAIRS框架的理解
  10. MyEclipse10.6导出war包出错
  11. VS2010中&lt;无法打开包括文件:“iostream.h”:&gt;错误解决方法
  12. 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段
  13. SQL Server IO系统问题解决
  14. C语言数据结构----栈与递归
  15. 【redis】windows
  16. linux下使用select实现精确定时器
  17. Chapter 4 Invitations——24
  18. SQL中DATENAME函数的用法
  19. 《http权威指南》读书笔记17
  20. SpringMVC @RequestParam和@RequestBody的区别

热门文章

  1. PHP 设计模式六大原则
  2. float和position的使用
  3. M2 Daily SCRUM要求
  4. 2-Fifteenth Scrum Meeting-20151215
  5. 第一周:通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
  6. 第六周 可执行代码 以及 PSP 燃尽图 等等
  7. Alpha、伪Beta 发布后,严一格的个人感想与体会
  8. 初征——NOIP2018游记
  9. Good Bye 2018 没打记
  10. MVC 锚点