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

第4章-1 生成3的乘方表 (15分)
n = int(input())
for i in range(n+1):
    print("pow(3,{0:}) = {1:}".format(i,pow(3,i)))
第4章-2 统计素数并求和 (20分)
m,n = input().split()
m = int(m)
n = int(n)
summ = 0
count = 0
flag = 0
if m == 1:
    count -= 1
    summ -= 1
for i in range(m,n+1):
    for j in range(2,i):
        if i % j == 0:
            flag = 1
    if flag == 0:
        count += 1
        summ += i
    flag = 0
print(count,summ)
第4章-3 猴子吃桃问题 (15分)
day = int(input())
count = 1
for i in range(day-1):
    count = 2*(count + 1 )
print(count)
第4章-4 验证“哥德巴赫猜想” (20分)
import math
def isprime(number):
    flag = True
    for i in range(2,int(math.sqrt(number))+1):
        if number % i == 0:
            flag = False
            break
    return flag
n = int(input())
a = 2
b = n - a
while(isprime(a) == False or isprime(b) == False):
    a += 1
    b = n-a
    


print("{0:} = {1:} + {2:}".format(n,a,b))

第4章-5 求e的近似值 (15分)
import math


n = int(input())
summ = 1
for i in range(1,n+1):
    summ += 1/math.factorial(i)
print("{:.8f}".format(summ))
    
第4章-6 输出前 n 个Fibonacci数 (15分)
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())
if n == 0:
    print("Invalid.")
else:
    for i in range(1,n+1):
        print("{:11d}".format(fib(i)),end = "")
        if(i%5 == 0):
            print("")
第4章-7 统计学生平均成绩与及格人数 (15分)
n = int(input())


if n == 0:
    print("average = 0.0")
    print("count = 0")
else:
    grades = input().split()
    grades1 = []
    count = 0
    for i in grades:
        grades1.append(int(i))
        if(int(i)>=60):
            
            count += 1

    res = sum(grades1)
    ave = res/n
    
    print("average = {:.1f}".format(ave))
    print("count = {:}".format(count))

第4章-8 求分数序列前N项和 (15分)
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())
summ = 0

for i in range(1,n+1):

    summ += (fib(i+2)/fib(i+1))

print("{:.2f}".format(summ))
第4章-9 查询水果价格 (15分)

price = [3.00,2.50,4.10,10.20]
string1 = input()
list1 = string1.split()
list2 = []
flag = 0
count = 0
for i in list1:
    list2.append(int(i))
if len(list2) > 5:
    print("[1] apple")
    print("[2] pear")
    print("[3] orange")
    print("[4] grape")
    print("[0] exit")
    for i in list2:
        count += 1
        if i in [1,2,3,4]:
            print("price = {:.2f}".format(price[i-1]))
        elif i == 0:
            flag = 1
        else:
            print("price = {:.2f}".format(0))
        if flag ==  1 or count == 5:
            break
    
else:
    print("[1] apple")
    print("[2] pear")
    print("[3] orange")
    print("[4] grape")
    print("[0] exit")

    for i in list2:
        count +=1
        if i in [1,2,3,4]:
            print("price = {:.2f}".format(price[i-1]))
        elif i == 0:
            flag = 1
        else:
            print("price = {:.2f}".format(0))
        if flag == 1 or count == 5:
            break
第4章-10 最大公约数和最小公倍数 (15分)
list1 = input().split()
m = int(list1[0])
n = int(list1[1])
minn = min(m,n)
maxx = max(m,n)
start = minn
ma = maxx

while(start !=0):
    if m%start == 0 and n%start==0:
        break
    else:
        start -= 1

print(start,int(m*n/start))
发布了21 篇原创文章 · 获赞 0 · 访问量 485

猜你喜欢

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