【PTA|Python】浙⼤版《Python程序设计》题⽬集:第⼆章前⾔
Hello!⼩伙伴!
⾮常感谢您阅读海轰的⽂章,倘若⽂中有错误的地⽅,欢迎您指出~
⾃我介绍(ˊᵕˋ)
昵称:海轰
标签:程序猿|C++选⼿|学⽣
简介:因C语⾔结识编程,随后转⼊计算机专业,有幸拿过国奖、省奖等,已保研。⽬前正在学习C++/Linux(真的真的太难了~)学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
第⼆章习题
2-1 计算 11+12+13+...+m (30 分)
题⽬
输⼊⼀个正整数m(20<=m<=100),计算 11+12+13+...+m 的值。
输⼊格式:
在⼀⾏输⼊⼀个正整数m。
输出格式:
在⼀⾏中按照格式“sum = S”输出对应的和S.
输⼊样例:
在这⾥给出⼀组输⼊。例如:
90
输出样例:
在这⾥给出相应的输出。例如:
sum = 4040
解答
m=int(input())
res=sum(list(range(11,m+1)))
print("sum =",res)
2-2 计算分段函数[1] (10 分)
题⽬
本题⽬要求计算下列分段函数_f_(x)的值:
输⼊格式:
输⼊在⼀⾏中给出实数x。
输出格式:
在⼀⾏中按“f(x) = result”的格式输出,其中x与result都保留⼀位⼩数。
输⼊样例1:
10
输出样例1:
f(10.0) = 0.1
输⼊样例2:
输出样例2:
f(0.0) = 0.0
解答
提交代码-1
x=float(input())
if x==0:
print("f({:.1f}) = {:.1f}".format(x,x))
else:
print("f({:.1f}) = {:.1f}".format(x,1/x))
提交代码-2
x=float(input())
if x==0:
print('f(%.1f) = %.1f'%(x,x))
else:
print('f(%.1f) = %.1f' % (x, 1/x))
2-3 阶梯电价 (15 分)
题⽬
为了提倡居民节约⽤电,某省电⼒公司执⾏“阶梯电价”,安装⼀户⼀表的居民⽤户电价分为两个“阶梯”:⽉⽤电量50千⽡时(含50千⽡时)以内的,电价为0.53元/千⽡时;超过50千⽡时的,超出部分的⽤电量,电价上调0.05元/千⽡时。请编写程序计算电费。
输⼊格式:
输⼊在⼀⾏中给出某⽤户的⽉⽤电量(单位:千⽡时)。
输出格式:
在⼀⾏中输出该⽤户应⽀付的电费(元),结果保留两位⼩数,格式如:“cost = 应付电费值”;若⽤电量⼩于0,则输出"Invalid Value!"。
输⼊样例1:
10
输出样例1:
cost = 5.30
输⼊样例2:
100
输出样例2:
cost = 55.50
解答
m=int(input())
if m<0:
print("Invalid Value!")
elif m<=50:
cost=m*0.53
print("cost = {:.2f}".format(cost))
else:
cost=50*0.53+(m-50)*(0.53+0.05)
print("cost = {:.2f}".format(cost))
2-4 特殊a串数列求和 (20 分)
题⽬
给定两个均不超过9的正整数_a_和_n_,要求编写程序求_a_+aa+aaa++…+aa_…_a(n_个_a)之和。
输⼊格式:
输⼊在⼀⾏中给出不超过9的正整数a和n。
输出格式:
在⼀⾏中按照“s = 对应的和”的格式输出。
输⼊样例:
2 3
输出样例:
s = 246
解答
a,n=map(int,input().split())
num=0
sum=0
for i in range(1,n+1):
num=num*10+a
sum+=num
print("s =",sum)
2-5 求奇数分之⼀序列前N项和 (15 分)
题⽬
本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。
输⼊格式:
输⼊在⼀⾏中给出⼀个正整数N。
输出格式:
在⼀⾏中按照“sum = S”的格式输出部分和的值S,精确到⼩数点后6位。题⽬保证计算结果不超过双精度范围。输⼊样例:
23
输出样例:
sum = 2.549541
解答
n=int(input())
sum=0
for i in range(1,2*n,2):
sum+=1/i
print("sum = {:.6f}".format(sum))
2-6 求交错序列前N项和 (15 分)
题⽬
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。输⼊格式:
输⼊在⼀⾏中给出⼀个正整数N。
输出格式:
在⼀⾏中输出部分和的值,结果保留三位⼩数。
输⼊样例:
5
输出样例:
0.917
解答
n=int(input())
sum=0
for i in range(1,n+1):
if i%2==0:
sum-=(i/(2*i-1))
else:
sum+=(i/(2*i-1))
print("{:.3f}".format(sum))
2-7 产⽣每位数字相同的n位数 (30 分)
题⽬
读⼊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
解答
a,b=map(int,input().split(','))
res=0
for i in range(1,b+1):
res=(res*10)+a
print(res)
2-8 转换函数使⽤ (30 分)
题⽬
输⼊⼀个整数和进制,转换成⼗进制输出
输⼊格式:
在⼀⾏输⼊整数和进制
输出格式:
在⼀⾏⼗进制输出结果
输⼊样例:
在这⾥给出⼀组输⼊。例如:
45,8
输出样例:
在这⾥给出相应的输出。例如:
37python格式化输出format
解答
提交代码-1
m,n=map(int,input().split(','))
count=0
ans=0
while(m>0):
ans=ans+(m%10)*pow(n,count)
count=count+1
m=int(m/10)
print(int(ans))
提交代码-2
m,n=input().split(',')
ans=int(m,int(n))
print(ans)
2-9 ⽐较⼤⼩ (10 分)
题⽬
本题要求将输⼊的任意3个整数从⼩到⼤输出。输⼊格式: