题目

解析

首先分析题目的意思是:

如果按照列举法就是

1 3 5 7

(4个)一位数的时候个位数取1357

11 13 15 17

21 23 25 27

......

71 73 75 77

(7*4个)两位数的时候十位是1-7任何数(7种)*个位奇数(四种)

101 103 105 107

.......

171 173 175 177

.......

771 773 775 777(7*8*4

百位数(1-7)(七种)*(十位数0-7)(八种)*个位奇数(四种)

根据归纳

一位数4

两位数7*4

三位数7*8*4

四位数7*8*8*4

n位数7*8*8*8*...*4

(n-2个8(因为去掉n位数个位和最高位))

接下来解题

f(n):用来计算n位数的时候有多少个0-7组成的奇数个数

他是一个递归函数 n==0和n==【2】是两个基例

所以n==0和n==【2】返回两个数值 应该是紧挨着的(一般如此)

所以估测【2】填n==1----------------------------------------------------①

else返回的【3】和f(n)本身是发生关系的一个函数

看主函数

首先l列表一个

然后i进行for循环到9(为什么是九。。。。题目没讲!

网上查题目也不知道为什么就是9,可能就是因为)

最多八位数(1,2,3,4,5,6,7,8)

也就是计算99999999以内的,题目没说!!!!

继续 他令了一个a=【4】

然后append(a)到l列表里面

由后面两个print可以知道 i表示i位数(i=12345678)

a表示i位数的奇数的个数

i=1,a=4

i=2,a=7*4

i=3,a=7*8*4

i=4,a=7*8*8*4......

所以为什么要把每一次的a加到l列表里,

因为列表储存每一次i位数的a个奇数个数也就是最后

l=[4,28,224.......]

最后sum(l)就是把i位数的a个奇数个数全部加起来就等于所有数字个数之和

好,假设我们运行一遍程序

从main开始

i=1(一位数)

a必须=4 4肯定要和最上面f(n)这个计算个数的函数发生关系

然后

i=2(两位数)

a必须=7*4(七怎么来?我们发现elif有个return 7)

所以可以有 elif n=(i=2的时候取得n值,那不就是1嘛)的时候

这个时候可以令a=4*f(当i=2的时候取得n值那不就是1嘛)

所以我们发现n和i的关系

就是a=4*f(i-1)---------------------------------------------------------②

那么我们重新回到i=1时

发现a=4*f(i-1)=4*f(0)

a必须=4 所以f(0)必须return 1才可以

所以【1】填1------------------------------------------------------------③

继续看i=3的情况

此时a=7*8*4

再进行一遍程序

a=4*f(2)==再等于啥呢

由于题目是递归函数 f(2)必须和f(0)或者f(1)发生关系

而且倍数是8(因为我们有了倍数7,也有了倍数4)

观察,跟f(0)发生不了关系,f(0)再怎么乘,就是个一)

i=1,a=4=4*f(0)=4*1

i=2,a=7*4=4*f(1)=4*7

i=3, a=4*f(2)=4*8*f(1)=4*8*7

i=4, a=4*f(3)=4*8*f(2)=4*8*8*f(1)=4*8*8*7

所以else的时候(也就是i不等于0也不等于1的时候)

f(n)=8*f(n-1)

也就是else: return 8*f(n-1)-------------------------------------------④

靠,做完了。

python输出奇数个数_Python实践|输出0-7组成八位奇数总数相关推荐

  1. python0到7能组成的奇数个数_Python实践|输出0-7组成八位奇数总数

    题目 解析 首先分析题目的意思是: 如果按照列举法就是 1 3 5 7 (4个)一位数的时候个位数取1357 11 13 15 17 21 23 25 27 ...... 71 73 75 77 (7 ...

  2. python奇数位_Python实践|输出0-7组成八位奇数总数

    题目 解析 首先分析题目的意思是: 如果按照列举法就是 1 3 5 7 (4个)一位数的时候个位数取1357 11 13 15 17 21 23 25 27 ...... 71 73 75 77 (7 ...

  3. python输出最小值程序_python程序输出最小值-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页  > 高级搜索 css z-index 最大 ...

  4. python输出个人信息_Python如何输出警告信息

    问题 你希望自己的程序能生成警告信息(比如废弃特性或使用问题). 解决方案 要输出一个警告消息,可使用 warning.warn()函数.例如: import warnings def func(x, ...

  5. 用python统计字母个数_python统计字母个数 python 统计文本中字母个数

    python 统计文本中字母个数 作业文件等有人回答小编再发,之前发文件被屏蔽了明明转身就有一个温馨的港湾,却偏偏还要去追逐那无望的孤船. l = 0with open('file.txt', 'r' ...

  6. python判断汉字个数_python判断列表里数量python中文乱码问题大总结

    在运行这样类似的代码:#!/usr/bin/env python s="中文" print s 最近经常遇到这样的问题: 问题一:SyntaxError: Non-ASCII ch ...

  7. python统计文字个数_python如何统计字符串中字母个数?

    方法:首先用"str_count = 0"定义字母的字符初始个数为0:接着遍历字符串,判断字符串内各字符的类型,并将字母个数累加:最后用"print('字母 = %d' ...

  8. python随机生成数字_Python 中生成 0 到 9 之间的随机整数

    很少有Python示例向您展示如何生成0(含)和9(含)之间的随机整数0 1 2 3 4 5 6 7 8 9 1.randrange 1.1生成0到9之间的随机整数 #!/usr/bin/python ...

  9. python每行输出5个数_python打印杨辉三角及输出第m行第k个数

    1.打印杨辉三角及输出第m行第k个数 1.计算到m行,打印出k项 第m行有m项,m是正整数,因此k一定不会大于m,这个需求需要保存m行的数据,那么可以使用一个嵌套结构[[],[],[]] m=int( ...

  10. python随机数并输出偶数个数_python随机数的产生

    导入 random模块  >>> import random 1.  random.random random.random()用于生成一个0到1的随机浮点数: 0 <= n ...

最新文章

  1. stm32外设初始化和设置过程
  2. VTK:vtkBillboardTextActor3D用法实战
  3. 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)V2.0_dev
  4. 数据挖掘:银行评分卡制作——数据分箱、WOE、IV的意义
  5. dms mysql 工具_数据库管理工具DMS
  6. 收藏 | 湖南省各地教师公务员等实际工资爆料
  7. 花瓣网爬取美女图片 每次20张
  8. CentOS 7安装/卸载Redis,配置service服务管理
  9. 【最优化导论】一维搜索方法
  10. 欧姆龙NX102与JTEKT PC10G进行EIP实列ID通信
  11. 云原生2.0时代,保险企业为何要迎智而上?
  12. 九十年前到江西(2009-06-09)
  13. React Native仿美团下拉菜单
  14. 视频中的3D人体姿态估计(3D human pose estimation in vide)--------Facebook research: VideoPose3D
  15. Processing基本函数整理
  16. 车祸相关公开数据集(免费下载)
  17. [收藏]《观察与思考》:相信中国,寻找下一个比尔·盖茨
  18. 手写数字识别问题(2)——利用matlab搭建GUI界面
  19. 为什么我们常说很多时候一定要亲身经历了之后才能明白?
  20. Uva 12627 Erratic Expansion(不稳定膨胀)

热门文章

  1. Flutter Align控件用法
  2. [java/初学者] 猜测随机数字的大小
  3. LZY逃命路线总数(记忆化递归)非常难
  4. 佳能计算机使用方法,佳能扫描仪怎么用?佳能扫描仪使用方法
  5. 青蛙跳台阶 php,php中青蛙跳台阶的问题解决方法
  6. excel单元格内换行的方法
  7. EXCEL单元格内怎么换行?Alt+Enter
  8. 架构师是否需要深入代码?
  9. NETBASE DAY04(03):华为交换机设置超时闲置时间,密码以及恢复出厂设置
  10. win10系统下office2003和office2016兼容