浙大版《Python 程序设计》题目集第四章11-20答案(自用)

第4章-11 判断素数 (20分)
def isprime(n):
    res = "Yes"
    if n <= 2:
        res = False
    else:
        for i in range(2,n):
            if n % i == 0:
                res = "No"
                break
    return res

n = int(input())
for i in range(n):
    number = int(input())
    print(isprime(number))
第4章-12 求满足条件的斐波那契数 (30分)
def fib(n):
    x1 = 1
    x2 = 1
    result = 1
    if n <= 2:
        pass
    else:
        for i in range(n-2):
            result = x1 + x2
            x1 = x2
            x2 = result
    return result

n = int(input())
start = 6
while fib(start) < n:
    start += 1
print(fib(start))
第4章-13 求误差小于输入值的e的近似值 (20分)
import math

def get_e(n):
    summ = 1
    for i in range(1,n+1):
        summ += 1/math.factorial(i)
    return summ

e1 = float(input())
start = 1
while True:
    if get_e(start+1)-get_e(start) < e1:
        print("{:.6f}".format(get_e(start+1)))
        break
    else:
        start += 1

第4章-14 统计字符 (15分)
letter = 0
blank = 0
digit = 0
other = 0
count = 0



list2 = []

while True:
    list1 = list(input())
    count += 1
    for i in list1:
        list2.append(i)
    if len(list2) + count > 10:
        count -= 1
        break
        


for i in list2:
  
    if i.isalpha():
        letter += 1
    elif i == " " or i == "\n":
        blank += 1
    elif i.isdigit():
        digit += 1
    else:
        other += 1
print("letter = {0:}, blank = {1:}, digit = {2:}, other = {3:}".format(letter,blank + count,digit,other))
第4章-15 换硬币 (20分)
n = int(input())
count = 0
for fen5 in range(int(n/5),0,-1):
    for fen2 in range(int(n/2),0,-1):
        for fen1 in range(int(n/1),0,-1):
            if fen1*1+fen2*2+fen5*5 == n:
                count += 1
                print("fen5:{:d}, fen2:{:d}, fen1:{:d}, total:{:d}".format(fen5, fen2, fen1, fen1+fen2+fen5))
print("count = {:}".format(count))
第4章-16 jmu-python-判断是否构成三角形 (10分)
a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
if a + b > c and a + c > b and  b + c > a:
    print("yes")
else:
    print("no")
第4章-17 水仙花数(20 分) (20分)
n = int(input())
for i in range(pow(10,n-1),pow(10,n)):
    summ = 0
    tmp = str(i)
    tmp_list = []
    for j in tmp:
        tmp_list.append(int(j))
    for k in tmp_list:
        summ += pow(k,n)
    if summ == i:
        print('{:}'.format(i))
第4章-18 猴子选大王 (20分)
n = int(input())
monkey = []
if n == 1:
    print("1")
else:
    for i in range(1,n+1):
        monkey.append(i)
    while len(monkey) >=3:
        monkey.pop(2)
        monkey.append(monkey[0])
        monkey.append(monkey[1])
        monkey = monkey[2:]
    print(monkey[1])
第4章-19 矩阵运算 (20分)
n = int(input())
list1 = []
for i in range(n):
    tmp = []
    tmp_list = input().split()
    for i in tmp_list:
        tmp.append(int(i))
    list1.append(tmp)
summ = 0
useless = 0
for i in range(n):
    summ += sum(list1[i])
    useless += list1[i][-1]

for i in range(1,n-1):
    
 
        useless += list1[i][-i-1]

print(summ - useless-sum(list1[-1])+list1[-1][-1])
    
        
第4章-20 求矩阵各行元素之和 (15分)
m,n = input().split()
m = int(m)
n = int(n)
list1 = []
for i in range(m):
    list2 = input().split()
    tmp = []
    for i in list2:
        tmp.append(int(i))
    list1.append(tmp)
for j in list1:
    print(sum(j))
    
发布了21 篇原创文章 · 获赞 0 · 访问量 484

猜你喜欢

转载自blog.csdn.net/qq_39901722/article/details/104660323