浙江大学Python PTA编程题 个人题解(一)
車厘子糖
2022年06月24日 18:12
收录于文集
共5篇

写在前面:笔者在本文给出的PTA编程题答案仅供大家交流、学习,不保证100%正确性,不是唯一解,不一定是最优解。

7-1 从键盘输入两个数,求它们的和并输出

本题目要求读入2个整数A和B,然后输出它们的和。

输入格式:

在一行中给出一个被加数 在另一行中给出一个加数

输出格式:

在一行中输出和值。

输入样例:

在这里给出一组输入。例如:

18

-48

输出样例:

在这里给出相应的输出。例如:

-30

代码块
text/x-python
自动换行
复制代码
print(int(input())+int(input()))
复制成功

7-2 从键盘输入三个数到a,b,c中,按公式值输出

在同一行依次输入三个值a,b,c,用空格分开,输出 b*b-4*a*c的值

输入格式:

在一行中输入三个数。

输出格式:

在一行中输出公式值。

输入样例:

在这里给出一组输入。例如:

3 4 5

输出样例:

在这里给出相应的输出。例如:

-44

代码块
text/x-python
自动换行
复制代码
f=lambda x,y,z:y*y-4*x*z
print(f(*map(int,input().split())))
复制成功

7-3 输出“人生苦短,我学Python”

输入格式:

无

输出格式:

人生苦短,我学Python

输入样例:

 

输出样例:

人生苦短,我学Python

代码块
text/x-python
自动换行
复制代码
print('人生苦短,我学Python')
复制成功

7-4 写字母H

字母H可以这样输出。编程序输出H

*   *

*   *

*****

*   *

*   *

输入格式:

无

输出格式:

输出字母H图形。

输入样例:

在这里给出一组输入。例如:

 

输出样例:

在这里给出相应的输出。例如:

*   *

*   *

*****

*   *

*   *

代码块
text/x-python
自动换行
复制代码
print('''*   *

*   *

*****

*   *

*   *''')
复制成功

7-5 计算 11+12+13+...+m

输入一个正整数m(20<=m<=100),计算 11+12+13+...+m 的值。

输入格式:

在一行输入一个正整数m。

输出格式:

在一行中按照格式“sum = S”输出对应的和S.

输入样例:

在这里给出一组输入。例如:

90

输出样例:

在这里给出相应的输出。例如:

sum = 4040

代码块
text/x-python
自动换行
复制代码
print(f'sum = {sum(range(11,int(input())+1))}')
复制成功

7-6 计算分段函数

本题目要求计算下列分段函数g(x)的值:

g(x)={02x1x=0x!=0

输入格式:

在一行中输入实数x。

输出格式:

在一行中按“g(x) = result”的格式输出,其中x与result都保留3位小数。

输入样例1:

在这里给出一组输入。例如:

500

输出样例1:

在这里给出相应的输出。例如:

g(500.000) = 0.001

输入样例2:

在这里给出一组输入。例如:

0

输出样例2:

在这里给出相应的输出。例如:

g(0.000) = 0.000

代码块
text/x-python
自动换行
复制代码
x=float(input())
s=0 if x==0 else 1/2/x
print(f'g({x:.3f}) = {s:.3f}')
复制成功

7-7 阶梯电价

为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调X元/千瓦时。请编写程序计算电费。

输入格式:

一行中输入某用户的月用电量(单位:千瓦时)和电价上调的X值(单位:元),中间用空格分开。

输出格式:

在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”。

输入样例1:

在这里给出一组输入。例如:

10 0.05

输出样例1:

在这里给出相应的输出。例如:

cost = 5.30

输入样例:

在这里给出一组输入。例如:

100 0.05

输出样例:

在这里给出相应的输出。例如:

cost = 55.50

代码块
text/x-python
自动换行
复制代码
s,x=map(float,input().split())
cost=0.53*s if s<=50 else 0.53*50+(s-50)*(0.53+x)
print(f'cost = {cost:.2f}')
复制成功

7-8 求奇数分之一序列前N项近似和

本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项近似和(提示:用ceil函数)。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中按照“sum ≈ S”的格式输出近似和S。S是大于序列和的最小整数

输入样例:

在这里给出一组输入。例如:

23

输出样例:

在这里给出相应的输出。例如:

sum ≈ 3

代码块
text/x-python
自动换行
复制代码
from math import ceil
print(f'sum ≈ {ceil(sum([1/x for x in range(1,2*int(input())+1,2)]))}')
复制成功

7-5 求交错序列前N项和

本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中输出部分和的值,结果保留三位小数。

输入样例:

5

输出样例:

0.917

代码块
text/x-python
自动换行
复制代码
print(f'{sum([x/(2*x-1)*(-1)**(x+1) for x in range(1,int(input())+1)]):.3f}')
复制成功

7-6 产生每位数字相同的n位数

读入2个正整数A和B,1<=A<=9, 1<=B<=10,产生数字AA...A,一共B个A

输入格式:

在一行中输入A和B。

输出格式:

在一行中输出整数AA...A,一共B个A

输入样例1:

在这里给出一组输入。例如:

  1,  5

输出样例1:

在这里给出相应的输出。例如:

11111

输入样例2:

在这里给出一组输入。例如:

        3  ,4

输出样例2:

在这里给出相应的输出。例如:

3333

代码块
text/x-python
自动换行
复制代码
a,b=map(int,input().split(','))
print(str(a)*b)
复制成功

7-7 转换函数使用

输入一个整数和进制,转换成十进制输出

输入格式:

在一行输入整数和进制

输出格式:

在一行十进制输出结果

输入样例:

在这里给出一组输入。例如:

45,8

输出样例:

在这里给出相应的输出。例如:

37

代码块
text/x-python
自动换行
复制代码
a,b=map(int,input().split(','))
print(int(str(a),b))
复制成功

7-8 比较大小

输入3个不同整数,这3个整数分别对应3个字母的ASCII码值,把这3个字母按它的ASCII码值从小到大输出。

输入格式:

输入在一行中给出3个整数,其间以空格分隔

输出格式:

在一行中将3个字母按ASCII码值从小到大输出,其间以“<”相连。

输入样例:

在这里给出一组输入。例如:

97 65 100

输出样例:

在这里给出相应的输出。例如:

A<a<d

代码块
text/x-python
自动换行
复制代码
print(*sorted([chr(x) for x in map(int,input().split())]),sep='<')
复制成功