求s的近似值python,浙大版《Python 程序设计》题目集第4章-12——第4章-16

输入格式:

在一行输入误差范围。

输出格式:

在一行输出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")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值