第4章-12 求满足条件的斐波那契数
斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。
输入格式:
在一行输人一个正整数n(n>=10)。
输出格式:
在一行输出大于n的最小斐波那契数。
输入样例:
在这里给出一组输入。例如:
10
输出样例:
在这里给出相应的输出。例如:
13
答案样例:
a = int(input())
x = 13
y = 21
while x < a:# 因为题目说最小就是10,所以直接从13开始就好了
x,y = y,x+y
print(x)
第4章-13 求误差小于输入值的e的近似值
自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。ei代表前i项求和。输入误差范围error,当ei+1-ei<error,则表示e的近似值满足误差范围。
输入格式:
在一行输入误差范围。
输出格式:
在一行输出e的近似值(保留6位小数)。
输入样例1:
在这里给出一组输入。例如:
0.01
输出样例1:
在这里给出相应的输出。例如:
2.716667
输入样例2:
在这里给出一组输入。例如:
0.000000001
输出样例2:
在这里给出相应的输出。例如:
2.718282
答案样例:
from math import factorial
n = float(input())
s1 = 1
s2 = 2
i = 0
while s2 - s1 > n:
i += 1
s1 += 1/factorial(i)
s2 += 1/factorial(i+1)
print('{:.6f}'.format(s2))
第4章-14 统计字符
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
输入样例:
aZ &
09 Az
输出样例:
letter = 4, blank = 3, digit = 2, other = 1
答案样例:
# 这个题后台检测不好,这样都能过,要是我第二行输入很多字符了或是第一行就输入10以上的个字符,答案就不一样了,不用去较劲,过了就行
s = ''
enter_c = 0
while True:
b = input()# 输入一次就相当于回车数+1,但最后一个回车数不计入
enter_c += 1
s += b
if len(s)+enter_c > 10:
enter_c -= 1
break
alpha_c = space_c = digit_c = other_c = 0
for i in s:# s[:10]
if i.isalpha():
alpha_c += 1
elif i.isspace():
space_c += 1
elif i.isdigit():
digit_c += 1
else:
other_c += 1
print('letter = {}, blank = {}, digit = {}, other = {}'.format(alpha_c,space_c+enter_c,digit_c,other_c))
第4章-15 换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
答案样例:
money = int(input())
s = []
for x in range(1,money):# 5分的数量
for y in range(1,money):# 2分的数量
for z in range(1,money):# 1分的数量
if 5*x+2*y+z == money:
l = [x,y,z,x+y+z]
s.append(l)
for i in s[::-1]:
print('fen5:{}, fen2:{}, fen1:{}, total:{}'.format(*i))
print(f'count = {len(s)}')
第4章-16 jmu-python-判断是否构成三角形
输入三角形的三边,判断是否能构成三角形。若能构成输出yes,否则输出no。
输入格式:
在一行中直接输入3个整数,3个整数之间各用一个空格间隔,没有其他任何附加字符。
输出格式:
直接输出yes或no,没有其他任何附加字符。
输入样例1:
3 4 5
输出样例1:
yes
输入样例2:
1 2 3
输出样例2:
no
答案样例:
s = list(map(int,input().split()))
s.sort()# 直接排序判断前面两个之后是否大于第三个数
if s[0]+s[1] > s[-1]:
print("yes")
else:
print("no")