浙大版《Python 程序设计》题目集 编程题第四章
2020-03-06 15:54
288 查看
第4章-1 生成3的乘方表
from math import pow n=int(input()) for i in range(n+1): print('pow(3,{0}) = {1}'.format(i,int(pow(3,i))))
第4章-2 统计素数并求和
def isprime(n): for i in range(2,n): if n%i==0: return False else: return True m,n=map(int,input().split()) prime=[] for i in range(m,n+1): if isprime(i) and i>1: prime.append(i) print(len(prime),sum(prime))
第4章-3 猴子吃桃问题
n=int(input()) sum=1 for i in range(n-1): sum=(sum+1)*2 print(sum)
第4章-4 验证“哥德巴赫猜想”
from math import sqrt def isprime(n): for i in range(2,int(sqrt(n)+1)): if n%i==0: return False else: return True x=int(input()) for i in range(2,x): if isprime(i) and isprime(x-i): break print('{0} = {1} + {2}'.format(x,i,x-i))
第4章-5 求e的近似值
def fac(n): sum=1 for i in range(2,n+1): sum*=i return sum x=int(input()) s=[1/fac(i) for i in range(1,x+1)] print('{0:.8f}'.format(sum(s)+1))
第4章-6 输出前 n 个Fibonacci数
fibs=[1,1] n=int(input()) for i in range(n-2): fibs.append(fibs[-1]+fibs[-2]) if n<1: print('Invalid.') else: for i in range(n): print('{0:11d}'.format(fibs[i]),end='') if (i+1)%5==0: print()
第4章-7 统计学生平均成绩与及格人数
n=int(input()) if n==0: print('average = 0.0') print('count = 0') else: l=list(map(int,input().split())) s=[i for i in l if i>=60] print('average = {0:.1f}'.format(sum(l)/n)) print('count =',len(s))
第4章-8 求分数序列前N项和
n=int(input()) a=2 b=1 sum=a/b for i in range(n-1): temp=a a=a+b b=temp sum+=a/b print('{:.2f}'.format(sum))
第4章-9 查询水果价格
print('[1] apple') print('[2] pear') print('[3] orange') print('[4] grape') print('[0] exit') l=list(map(int,input().split())) price=[3.00,2.50,4.10,10.20] cnt=0 for i in l: cnt+=1 if cnt>5 or i==0: break if i<0 or i>4: print('price = 0.00') else: print('price = {:.2f}'.format(price[i-1]))
第4章-10 最大公约数和最小公倍数
'''求,就硬求 m,n=map(int,input().split()) max=max([i for i in range(1,m) if m%i==0 and n%i==0]) min=0 for i in range(m,m*n+1): if i%m==0 and i%n==0: min=i break print(max,min) ''' #老祖宗的辗转相除法 def gcd(m,n): if m%n == 0: return n else : return gcd(n,m%n) m,n=map(int,input().split()) print('{} {}'.format(gcd(m,n),m*n//gcd(m,n)))
第4章-11 判断素数
from math import sqrt def isprime(n): if n<=1: return False for i in range(2,int(sqrt(n)+1)): if n%i==0: return False else: return True n=int(input()) for i in range(n): x=int(input()) if isprime(x): print('Yes') else: print('No')
第4章-12 求满足条件的斐波那契数
n=int(input()) fibs=[1,1] while fibs[-1]<=n: fibs.append(fibs[-1]+fibs[-2]) print(fibs[-1])
第4章-13 求误差小于输入值的e的近似值
def fac(n): sum=1 for i in range(2,n+1): sum*=i return sum error=float(input()) sum1=1 sum2=0 i=1 while True: sum1=sum1+1/fac(i) i+=1 sum2=sum1+1/fac(i) if sum2-sum1<error: break print('{:.6f}'.format(sum2))
第4章-14 统计字符
''' 本题难点在于不知道10个字符分几行输入 所以每接收一行都要要统计回车数 ''' enter=0;letter=0;blank=0;digit=0;other=0 c='' while True: s=input() enter+=1 c+=s if len(c)+enter>10: enter-=1 break for i in c: if i.isalpha(): letter+=1 elif i==' ': blank+=1 elif i.isdigit(): digit+=1 else: other+=1 print('letter = {}, blank = {}, digit = {}, other = {}'.format(letter,blank+enter,digit,other))
第4章-15 换硬币
x=int(input()) count=0 fen5=0;fen2=0;fen1=0;total=0 for a in range(x//5,0,-1): for b in range(x//2,0,-1): for c in range(x,0,-1): if 5*a+2*b+c*1==x: print('fen5:{}, fen2:{}, fen1:{}, total:{}'.format(a,b,c,a+b+c)) count+=1 print('count =',count)
第4章-16 jmu-python-判断是否构成三角形
a,b,c=map(int,input().split()) if a+b<=c or a+c<=b or b+c<=a: print('no') else: print('yes')
第4章-17 水仙花数
from math import pow n=int(input()) start=int(pow(10,n-1)) stop=int(pow(10,n)) for i in range(start,stop): l=str(i) s=[int(pow(int(j),n)) for j in l] if i==sum(s): print(i)
第4章-18 猴子选大王
'''我的辣鸡代码如下 n=int(input()) l=[i for i in range(1,n+1)] cnt0=0 #记录报3的人数 cnt=0 #记录报数报到几了 while True: for i in range(n): if l[i]!=0: #只有不为0的人有资格报数 cnt+=1 if cnt==3: l[i]=0 #报3的人将其编号置零 cnt=0 #并且重新开始报数 cnt0+=1 #报3的人数+1 for i in range(n): if l[i]!=0: l[i]+=cnt #报完一遍数后,接着上一个报数 if cnt0==n-1: #当报3的人数为n-1时,剩下的为王 break for i in range(n): if l[i]!=0: #最后不为0的人只有一个,通过遍历找出 print(i+1) ''' '''大佬的 https://tuenity.blog.csdn.net/article/details/102609489 这个解答为下面的评论区的回复,作者为@zjuvegetable 侵删 ''' #约瑟夫环问题 n=int(input()) if n == 1: print(1) else: monkey=[i for i in range(1,n+1)] while len(monkey) >= 3: monkey.pop(2) monkey.append(monkey.pop(0)) monkey.append(monkey.pop(0)) print(monkey[1])
第4章-19 矩阵运算
n=int(input()) sum=0 l=[] for i in range(n): num=list(input().split()) l.append(num) for i in range(n): for j in range(n): if i+j!=n-1 and i!=n-1 and j!=n-1: sum+=int(l[i][j]) print(sum)
第4章-20 求矩阵各行元素之和
m,n=map(int,input().split()) for i in range(m): print(sum(list(map(int,input().split()))))
第4章-21 判断上三角矩阵
x=int(input()) for i in range(x): y=int(input()) l=[] flag=True for j in range(y): s=list(map(int,input().split())) l.append(s) for m in range(1,y): for n in range(m): if l[m][n]!=0: flag=False if flag: print('YES') else: print('NO')
第4章-22 找鞍点
n=int(input()) l=[] for i in range(n): s=list(map(int,input().split())) l.append(s) x=[] y=[] for i in range(n): xmax=max([l[i][j] for j in range(n)]) #行最大值 ymin=min([l[j][i] for j in range(n)]) #列最小值 x+=[(i,j) for j in range(n) if l[i][j]==xmax] y+=[(j,i) for j in range(n) if l[j][i]==ymin] x=list(set(x)&set(y)) if len(x)==0: print('NONE') else: print(x[0][0],x[0][1])
第4章-23 求矩阵的局部极大值
m,n=map(int,input().split()) l=[] for i in range(m): s=list(map(int,input().split())) l.append(s) flag=False for i in range(1,m-1): for j in range(1,n-1): if l[i][j]>l[i-1][j] and l[i][j]>l[i+1][j]\ and l[i][j]>l[i][j-1] and l[i][j]>l[i][j+1]: flag=True print(l[i][j],i+1,j+1) if flag==False and i==m-2: print('None',m,n)
第4章-24 打印九九口诀表
n=int(input()) for i in range(1,n+1): for j in range(1,i+1): print('{0}*{1}={2:<4d}'.format(j,i,i*j),end='') if j==i: print()
第4章-25 输出三角形字符阵列
n=int(input()) c='A' for i in range(n,0,-1): for j in range(i): print('{} '.format(c),end='') c=chr(ord(c)+1) if j==i-1: print()
第4章-26 求1!+3!+5!+……+n!
n=int(input()) if n==1: print('n=1,s=1') else: l=[] for i in range(1,n+1,2): s=1 for j in range(1,i+1): s*=j l.append(s) print('n={},s={}'.format(n,sum(l)))
第4章-27 二维数组中每行最大值和每行和
l=list(map(int,input().split())) for i in range(9): if i%3==0: s=[] s.append(l[i]) if i%3==2: for j in range(3): print('{:>4d}'.format(s[j]),end='') print('{:>4d}{:>4d}'.format(max(s),sum(s)))
第4章-28 矩阵转置
l=list(map(int,input().split())) for i in range(3): for j in range(9): if j%3==i: print('{:>4d}'.format(l[j]),end='') print()
第4章-29 找出不是两个数组共有的元素
s=list(map(int,input().split())) t=list(map(int,input().split())) lens=s.pop(0) lent=t.pop(0) l=[] for i in s: if i not in t and i not in l: l.append(i) for i in t: if i not in s and i not in l: l.append(i) print(*l,sep=' ')
第4章-30 找完数
from math import sqrt m,n=map(int,input().split()) flag=False for i in range(m,n+1): l=[1] for j in range(2,int(sqrt(i))+1): if i%j==0: l.append(j) l.append(i//j) l=sorted(l) if i==sum(l): flag=True print('{} = '.format(i),end='') print(*l,sep=' + ') if flag==False: print('None')
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 浙大版《Python 程序设计》题目集 编程题第六章
- 浙大版《Python 程序设计》题目集 编程题第五章
- Python程序设计与算法基础教程·第四章上机实践
- Python语言程序设计(编程题)—— 第一章
- 【PTA】【浙大版《Python 程序设计》题目集】 7-9 求矩阵鞍点的个数 (30 分)
- Python语言程序设计 Python123 测验7: 文件和数据格式化(编程题)
- 【PTA】【浙大版python程序设计 题目集】7-14 求整数段和 (15 分)
- Python语言程序设计(编程题)—— 第二章
- 【PTA】【浙大版《Python 程序设计》 7-9 字符串转换成十进制整数 (15 分)
- Python程序设计与算法基础教程第四章上机题
- 浙大版《Python 程序设计》题目集索引
- python语言程序设计(MOOC 嵩天)第四章 程序整理(0213)
- python语言程序设计(MOOC 嵩天)第四章 学习笔记(0211)
- PTA】【浙大版《Python 程序设计》题目集】第6章函数-5 使用函数求余弦函数的近似值 (20 分)
- Python语言程序设计 Python123 测验3: 基本数据类型(编程题)
- 【PTA】【浙大版《Python 程序设计》题目集】7-8 *6-7 输出全排列 (20 分)
- Python语言程序设计基础(第2版) 课后题 第四章
- Python语言程序设计 Python123 测验1: Python基本语法元素(编程题)
- 第四章 选择结构程序设计
- Andrew Ng的machine learning课程week2编程题python实现