问:

基础题:

定义函数实现以下功能:求出 0-n 所能组成的奇数个数,
位数最多 n+1 (0<n<10),
比如键盘输入n=7,求出0-7所能组成的奇数个数

提高题:

有如下分数序列: 2/1 , 3/2 , 5/3 , 8/5 , 13/8 , 21/13...
求出这个数列的前 N 项之和,N由键盘输入

答:

基础题:

定义函数实现以下功能:求出 0-n 所能组成的奇数个数,
位数最多 n+1 (0<n<10),
比如键盘输入n=7,求出0-7所能组成的奇数个数

# 判断 0-n 之间有几个奇数
def judge_odd_num(num):
odd_num = []
for i in range(1, num + 1):
if i % 2 != 0:
odd_num.append(i) return odd_num def calc_odd_nums(num, odd_num_count):
'''
当一个数的最后一位为奇数时,那么这个数一定为奇数;
首位肯定不为0;
从该数为1位数到该数为(n+1)位数开始统计奇数的个数:
1.当只有一位数时,奇数个数为 0-n之间的奇数个数,此处以7为例,0-7之间有4个奇数;
2.当该数为两位数时,奇数个数为4*7=28, 首位有7个数的可能性,个位只有4个奇数可选;
3.当该数为三位数时,奇数个数为:4*8*7=224,首位仍然是7个数,十位可以是0-7的任意一个数,即8个数的可能性,个位依旧
以此类推。。。
:param num: 输入的数字n
:param odd_num_count: 0-n之间的奇数个数
'''
sum_odd_count = 0
for i in range(1, num+1):
if i == 1:
odd_num_count = odd_num_count
elif i == 2:
first_place = num
odd_num_count = odd_num_count * first_place
if i > 2:
odd_num_count *= num+1 sum_odd_count += odd_num_count
print('%d位数的奇数个数为%d' % (i, odd_num_count)) print('0-%s所能组成的奇数个数总和为:%d' %(num, sum_odd_count)) if __name__ == '__main__':
decimal_places = int(input("请输入数字n(1<n<10):"))
odd_num = judge_odd_num(decimal_places)
odd_num_count = len(odd_num)
calc_odd_nums(decimal_places, odd_num_count)

提高题:

有如下分数序列: 2/1 , 3/2 , 5/3 , 8/5 , 13/8 , 21/13... 
求出这个数列的前 N 项之和,N由键盘输入
def sum_fraction(n):
x, y, i, j = 1, 2, 0, 0
while i < n:
j += y/x
x, y = y, x+y
i += 1
return j n = eval(input('请输入:'))
print('{:.2f}'.format(sum_fraction(n)))

												

Python【每日一问】34的更多相关文章

  1. [python每日一练]--0012:敏感词过滤 type2

    题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...

  2. Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词

    #coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...

  3. python每日一函数 - divmod数字处理函数

    python每日一函数 - divmod数字处理函数 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: ...

  4. 每日一问:Android 消息机制,我有必要再讲一次!

    坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 我 17 年的 面试系列,曾写过一篇名为:Android 面试(五):探 ...

  5. 每日一问:谈谈 volatile 关键字

    这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下. 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了 ...

  6. 每日一问:讲讲 Java 虚拟机的垃圾回收

    昨天我们用比较精简的文字讲了 Java 虚拟机结构,没看过的可以直接从这里查看: 每日一问:你了解 Java 虚拟机结构么? 今天我们必须来看看 Java 虚拟机的垃圾回收算法是怎样的.不过在开始之前 ...

  7. 每日一问:你了解 Java 虚拟机结构么?

    对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...

  8. 每日一问:LayoutParams 你知道多少?

    前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的.我们 ...

  9. 每日一问:简述 View 的绘制流程

    Android 开发中经常需要用一些自定义 View 去满足产品和设计的脑洞,所以 View 的绘制流程至关重要.网上目前有非常多这方面的资料,但最好的方式还是直接跟着源码进行解读,每日一问系列一直追 ...

  10. python每日一练:0007题

    第 0007 题: 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来. # -*- coding:utf-8 -*- import os def count ...

随机推荐

  1. 【bzoj1029】[JSOI2007]建筑抢修

    按照t2从小到大排列之后贪心. 若当前任务可以插入,则插入. 若当前任务不可以插入,分两种情况: ①当前任务的耗时大于等于之前插入的任务的最大耗时:跳过当前任务 ②当前任务的耗时小于之前插入的任务的耗 ...

  2. 使用 FFmpeg 处理高质量 GIF 图片

    使用 FFmpeg 处理高质量 GIF 图片 - 为程序员服务  http://ju.outofmemory.cn/entry/169845

  3. Android源码的下载、编译与导入到Android Studio【转】

    本文转载自:http://wl9739.github.io/2016/05/09/Android%E6%BA%90%E7%A0%81%E7%9A%84%E4%B8%8B%E8%BD%BD%E3%80% ...

  4. 【POJ 2983】 Is the information reliable?

    [题目链接] 点击打开链接 [算法] 差分约束系统,SPFA判负环 [代码] #include <algorithm> #include <bitset> #include & ...

  5. Python中关键字global与nonlocal的区别

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xCyansun/article/details/79672634终于下定决心学习Python了.既然 ...

  6. python-----写入txt用法

    代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/1/14 11:23 # @Author : zxb file_p ...

  7. mybaties中,模糊查询的几种写法

    模糊查询: 工作中用到,写三种用法吧,第四种为大小写匹配查询 1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('% ...

  8. 【高德地图API】绘制大地线 Geodesic/Great Circles

    大地线(geodesic)是指地球椭球面上连接两点的最短程曲线. 大地线上每点的密切面(无限接近的3个点所构成的平面)都包含此点的曲面法线.因曲面法线互不相交,故为一条空间曲面曲线.在球面上,大圆弧( ...

  9. HDU 2544 最短路 (Floyd)

    题意:略. 析:由于 n 比较小,所以我们可以用Floyd,完全不会超时. 代码如下: #pragma comment(linker, "/STACK:1024000000,10240000 ...

  10. Ubuntu下 VirtualBox的卸载和升级 (转载)

    转载:http://blog.csdn.net/li_hai/article/details/8164744 首先,在终端查看已经安装的VirtualBox的版本: $ dpkg -l 查看到版本号, ...