前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >考点:数学中的奇数规律观察题【Python习题13】

考点:数学中的奇数规律观察题【Python习题13】

作者头像
刘金玉编程
发布2021-12-27 08:50:13
2850
发布2021-12-27 08:50:13
举报
文章被收录于专栏:编程创造城市编程创造城市

考点:数学中的奇数规律观察题【Python习题13】

代码语言:javascript
复制
题目:求0—7所能组成的奇数个数。

解题分析:

这题目的第一个想法,我们可能直接会考虑计算机的思维直接强行遍历,最终遍历到一个最大的8位数,并且数值中不能包含8和9的所有数的个数,这样的想法虽然可以解题,但是比较粗暴,效率低。此题,我们可以结合数学观察思维,可以使得我们的代码运行效率更高!

我们可以按照数据的位数来划分:

1位位数的奇数分别是1,3,5,7 共4个。

2位位数的奇数应该在1位位数的基础上增加,可以组成为:

11,13,15,17

21,23,25,27

31,33,35,37

...

71,73,75,77

共4*7个

3位位数的奇数应该在2位的基础上增加,可以组成为:

101,103,105,107

201,203,205,207

301,303,305,307

...

701,703,705,707

111,113,115,117

211,213,215,217

311,313,315,317

...

711,713,715,717

171,173,175,177

271,273,275,277

371,373,375,377

...

771,773,775,777

以上有8组,共4*7*8个

接下去的规律是:

4位位数的奇数的个数:4*7*8*8

...

8位位数的奇数个数:4*7*8*8*...8

观察结果是从3位位数开始,每增加1位位数,奇数个数就在原来基础上乘以8.

根据以上过程,我们得出如下程序代码:

我们用curnum=4表示1位数时候的奇数个数,这个变量记录每次位数时候的奇数个数。

我们用total=4表示记录总共的奇数个数,把每一种位数得到的奇数个数都加到里面,最终合计的结果,就是本题的答案。

程序源代码:

代码语言:javascript
复制
# -*- coding: utf-8 -*-
"""
@File文件    :   ljytest86
@Time创建时间    :    2021/12/21
@Author作者  :   刘金玉
@Contact联系方式 :   selidev@qq.com   编程创造城市 http://bcczcs.com
注:作者信息请保留!否则必究法律责任!
刘金玉编程,编程创造城市!
作者微信号:selidev
作者抖音号:selidev
作者B站:刘金玉编程
微信公众号:编程创造城市
题目:求0—7所能组成的奇数个数。

程序分析:
组成1位数是4个。
组成2位数是7*4个。
组成3位数是7*8*4个。
组成4位数是7*8*8*4个。
......
"""

total=4
curnum=4
print("{}位数奇数个数".format(1),curnum)
for i in range(2,9):  #最大可能的组成位数是8位
    if i<=2:
        curnum*=7
    else:
        curnum*=8
    print("{}位数奇数个数".format(i),curnum)  #输出每一种情况
    total+=curnum
print("总共个数:",total)


总结:

我们程序员往往很多时候思考会比较简单,就是利用计算机的遍历功能会把所有可能列举出来然后进行筛选,但是这样其实有些时候消耗了一些不该消耗的时间和软件性能。如果程序员在平时写代码之前思考同时结合数学思维的方法,将进一步可能进阶到大咖行列。加油!

相关文章:

  1. Python编程语言起步如何开始?刘金玉的Python笔记01
  2. 考点:列表、输入、元素比较、位置交换【Python习题01】
  3. 考点:自定义函数、引用传值、二位列表的输入输出【Python习题02】
  4. 考点:程序逻辑和调试,类似环形链表结构【Python习题03】
  5. 考点:函数参数传参、求和、奇数、偶数、输入输出、range步长灵活使用【Python习题04】
  6. 考点:最值应用,基本排序法,复杂排序法,sorted函数的灵活运用【Python习题05】
  7. 考点:深度拷贝、zip函数的压缩与解压包【Python习题06】
  8. 考点:猴子分桃问题,程序员可以将数学逻辑思维转换为编程思维【Python习题07】
  9. 考点:星号的巧妙使用方式,包含计算、传参【Python习题08】
  10. 考点:海龟画图turtle库的使用,绘制五角星、矩形等【Python习题09】
  11. 考点:角度旋转、海龟坐标轴以及简单时间绘图算法以及海龟的定时器ontimer【Python习题10】
  12. 考点:枚举法解数学题,按照条件来限定枚举结果【Python习题11】
  13. 考点:进制转化函数和数学通用方法【Python习题12】
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程创造城市 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档