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

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

题目:求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表示记录总共的奇数个数,把每一种位数得到的奇数个数都加到里面,最终合计的结果,就是本题的答案。

程序源代码:

程序分析:
组成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)

总结:

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

相关文章
|
8天前
|
Python
[重学Python]Day 2 Python经典案例简单习题6个
[重学Python]Day 2 Python经典案例简单习题6个
13 0
|
24天前
|
Python
Python中的math和cmath模块:数学运算的得力助手
Python作为一种功能强大的编程语言,提供了丰富的数学运算功能。其中,math和cmath模块就是Python中用于数学运算的重要工具。math模块提供了基本的数学函数和常量,适用于实数运算;而cmath模块则提供了对复数运算的支持,使得Python在数学计算和工程应用中更加灵活和强大。
|
1月前
|
机器学习/深度学习 算法 数据可视化
Python语言的数学模块
Python语言的数学模块
|
1月前
|
机器学习/深度学习 算法 数据可视化
Python数学模块的应用与性能优化
【2月更文挑战第4天】 Python数学模块的应用与性能优化
50 2
|
1月前
|
Python
Python:判断一个数是偶数还是奇数
Python:判断一个数是偶数还是奇数
|
2月前
|
存储 Python
python数学基础——单词统计
python数学基础——单词统计
25 0
|
2月前
|
Python
Python数学基础二、利用正弦sin求曲边图形的面积
Python数学基础二、利用正弦sin求曲边图形的面积
53 0
|
2月前
|
Python
Python数学基础-识图一、平面直角坐标系
Python数学基础-识图一、平面直角坐标系
35 0
|
算法 Python
Python标准库12 数学与随机数 (math包,random包)
原文:Python标准库12 数学与随机数 (math包,random包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   我们已经在Python运算中看到Python最基本的数学运算功能。
1073 0
|
算法 Python
Python标准库12 数学与随机数 (math包,random包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   我们已经在Python运算中看到Python最基本的数学运算功能。此外,math包补充了更多的函数。
1021 0