K-进制数(简洁 图解)

简介: 根据题意,要知道 N 位K 进制并且 不能有连续两个0出现 还有首位不能为0 的限制条件。 本着由简到难的思想 : 假设是让你求 1位 K 进制的满足条件的数,那么满足条件的数则有 1,2,3.....K-1 一共K-1个数对吧,我们记作 res_1=K-1,那么不满足条件的数 只有 0 ,一共1个数 ,我们记作res_0=1。 假设是让你求 2位 K 进制的满足条件的数,那么先考虑首位(也就是第2位),可以填的数为除去0的其他数,

  K-进制数

题目描述

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

样例输入

样例输出

根据题意,要知道 N 位K 进制并且 不能有连续两个0出现 还有首位不能为0 的限制条件。

 本着由简到难的思想  :

        假设是让你求 1位 K 进制的满足条件的数,那么满足条件的数则有 1,2,3.....K-1 一共K-1个数对吧,

我们记作 res_1=K-1,那么不满足条件的数 只有 0 ,一共1个数 ,我们记作res_0=1。

             

        假设是让你求 2位 K 进制的满足条件的数,那么先考虑首位(也就是第2位),可以填的数为除去0的其他数,

有 1,2,3.....K-1 一共K-1个数对吧,而这第二位可以填的数 可以和第一位的所有数搭配,

以1为例,有 11,12,13,.....1(K-1),还有在第一位不满足条件的 0 搭配 10,也是满足条件的数,

所以2位K进制满足条件的数res_1=(K-1)(K-1+1),即 res_1=(K-1)(res_1+res_0),对吧,

再来看不满足条件的数 即 首位为0的 有 01,02,03.....0(K-1),一共有K-1个也就是res_0=K-1,即 res_0=res_1(上一个)。

第一位满足条件的数res_1对吧,因为不能连0 ,虽然00也是不满足,但是 00这种情况是绝对不满足,

而首位不满足的情况是相对不满足,绝对和相对 懂吧。

       那么继续,假设是让你求 3位 K 进制的满足条件的数,同样先考虑首位(也就是第3位),

可以填的数为除去0的其他数,有 1,2,3.....K-1 一共K-1个数对吧,而这第3位可以填的数

可以和2位K进制满足条件和(相对)不满足条件的数搭配,即 res_1=(K-1)[(K-1)(K-1+1)+(K-1)],

即 res_1=(K-1)*(res_1+res_0),不满足条件的数则是可以和2位K进制满足条件的数搭配,

res_0=(k-1)*(K-1+1),即res_0=res_1。

 后面的位数就以此类推,再看看图解。

网络异常,图片无法展示
|

AC代码:

#include<stdio.h>intmain(){
intN,K,i,res_0,res_1;//res_1代表最高位非0  res_0代表最高位为0的结果 while(scanf("%d%d",&N,&K)!=EOF){
res_1=K-1,res_0=1;//如果只有一位时 K进制首位为1的可以填的为K-1个数去掉为0 for(i=2;i<=N;i++){ 
intlast_res_1=res_1;//暂存 res_1=(K-1)*(res_1+res_0);//如果高位为1 则结果为上一次结果为1和为0的数的个数 res_0=last_res_1; //如果高位为0 则结果为上一次结果为1的数的个数       }
printf("%d\n",res_1);
   }
return0;
}
目录
相关文章
|
4月前
|
缓存 负载均衡 应用服务中间件
uWSGI的配置及使用
uWSGI是一个功能强大的Web服务器和应用服务器,主要用于实现Python Web应用与Web服务器之间的通信。它遵循WSGI(Web Server Gateway Interface)规范,作为桥梁连接Web服务器(如Nginx)与Python应用(如Django、Flask)。相比开发环境中的简易服务器(如Django的runserver或Flask的Werkzeug),uWSGI在生产环境中具备更强的并发处理能力和更多高级特性,例如负载均衡、缓存等。通过支持多种启动方式(命令行或配置文件)及丰富参数配置,uWSGI可灵活部署于实际项目中,满足高性能需求。
466 4
|
运维 安全 程序员
如何使用远程控制软件并将用途最大化?4款国内外优质应用测评解析
如何使用远程控制软件并将用途最大化?4款国内外优质应用测评解析
341 0
如何使用远程控制软件并将用途最大化?4款国内外优质应用测评解析
|
11月前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
Java UED
Java面试题:描述JVM中垃圾收集的Stop-The-World现象及其影响
Java面试题:描述JVM中垃圾收集的Stop-The-World现象及其影响
224 1
|
人工智能 监控 算法
基于蓝牙iBeacon定位技术与3DCIS技术的室内定位导航系统,助力智慧空间管理
**维小帮室内定位导航系统**采用3D可视化、蓝牙iBeacon、AI路径规划及物联网技术,提供精准室内导航。系统支持3D/AR导航、实时定位、电子围栏功能,广泛应用于商场、医院、办公楼和园区,提升用户体验并优化管理。例如,商场中的精准营销,医院的智能导诊,办公楼的效率提升,园区的综合管理。通过智能路径规划,确保用户在复杂环境中无碍通行。
451 0
基于蓝牙iBeacon定位技术与3DCIS技术的室内定位导航系统,助力智慧空间管理
|
缓存 监控 Java
Spring Boot应用的性能监控与优化
Spring Boot应用的性能监控与优化
|
Linux Windows
imx6ull开发板之qt应用编程读取AP3216c(光照,距离)数据。
imx6ull开发板之qt应用编程读取AP3216c(光照,距离)数据。
249 0
《逻辑与计算机设计基础(原书第5版)》——2.7 门的传播延迟
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第2章,第2.7节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
4099 1
|
负载均衡 监控 测试技术
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
371 0
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
|
缓存 Kubernetes 网络协议
Spring Boot 2.3.0配置Graceful-Shutdown,Readiness和Liveness
Spring Boot 2.3.0配置Graceful-Shutdown,Readiness和Liveness
Spring Boot 2.3.0配置Graceful-Shutdown,Readiness和Liveness