python面试题之中有这么一个常见的题目,那就是给定一个整数n,然后获取1-n之间数字1的出现次数 。这个题目主要考验的就是开发者对于算法以及基础运算符的使用程度,那么下文有这个问题的相关代码以及解题思路,感兴趣的话就往下看看吧 。

一、解题思路
那么这个问题的主要关键点在于给定的n是几位数,个位数那么就只会有一个数字1 。十位数如果是19就会有11个数字1,而每增加10就会多出来一个数字一 。那么百位数以及往上的也是相同道理,不过它们会在百位上出现100次,十位上出现18次,个位上又出现9次 。
那么根据这个就是可以得到对应的公式f(n) = 9 * f(n-1) + 10 ** (n-1),只需要去套用这个公式来编写代码就可以了 。
二.代码实现
那么只需要去定义一个递归函数就可以了,该函数只接受数字n一个参数,不过该数字需要是整数 。在该函数内先判断其是否小于等于0,如果为0就表示无效值直接将其返回 。如果为数字1也直接返回1,因为1有且只会出现一次 。
【Python数字1出现的次数怎么获取?Python如何获取序列中数字1出现次数】而其他的值就是要在函数内去将这个公式给编写出来,因为该函数会调用自身,所以会将每次结果保存起来参与下次函数的调用 。最后当n的值变为传进来数值时,就将获取到的每位数相加起来返回即可得到数字1出现次数,详细代码如下:
def get_1_digits(n): if n <= 0: return 0 if n == 1: return 1 current = 9 * get_1_digits(n-1) + 10 ** (n-1) return get_1_digits(n-1) + current以上就是关于“Python数字1出现的次数怎么获取?Python如何获取序列中数字1出现次数”的全部内容了,希望对你有所帮助 。



微信扫码,学习更方便

现在报名赠100例知识点合集

猜你喜欢
- Python如何转换百分数?Python中百分比怎么输出
- Python捕获相机视频播放怎么做?Python如何读取摄像头视频然后播放
- Python如何读取摄像头视频并保存?Python怎么保存摄像头视频数据
- 几斗在守护甜心里出现的集数
- 用加湿器后为什么家具上出现白霜
- 长跑出现胸闷怎么处理
- 下载的《三国志曹操传》简体中文硬盘版无法打开,出现提示:打开文件失败,未找到用来打开此文件的应用程序
- 3377怎么算24点?
- 请问联想L480的这个这个接口是做什么用的,第一次看见这个硬件接口,应该是一种数字接口
- 变频空调定频空调有什么区别的符号或数字吗
