Python【每日一问】34
2020-12-13 03:40
标签:键盘 功能 turn orm n+1 ram mat style input 基础题: 定义函数实现以下功能:求出 0-n 所能组成的奇数个数, 提高题: 基础题: 定义函数实现以下功能:求出 0-n 所能组成的奇数个数, Python【每日一问】34 标签:键盘 功能 turn orm n+1 ram mat style input 原文地址:https://www.cnblogs.com/ElegantSmile/p/10964136.html问:
位数最多 n+1 (0
有如下分数序列: 2/1 , 3/2 , 5/3 , 8/5 , 13/8 , 21/13...
求出这个数列的前 N 项之和,N由键盘输入
答:
位数最多 n+1 (0# 判断 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
提高题:
有如下分数序列: 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)))