湖北师范大学-Python程序设计-流程控制自学引导

发布于:2024-08-20 ⋅ 阅读:(32) ⋅ 点赞:(0)

第1关:按从小到大顺序输出小于n的非负整数

编程要求
根据提示,在右侧编辑器补充代码,接受一个正整数输入,在同一行依序输出小于n的非负整数。

测试说明
平台会对你编写的代码进行测试:

测试输入:
5
预期输出:
0 1 2 3 4 

测试输入:
15
预期输出:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 

提示:
输出不换行,print()中要使用end参数,参数值根据题目 要求设定

n=int(input())
for i in range(n):
    print(i,end=' ')

第2关:根据输入数据按要求输出整数序列

编程要求
根据提示,在右侧编辑器补充代码,在三行中分别输入一个正整数(测试数据保证第二个数大于第一个数,即保证终点数据大于起点),在同一行依序输出产生的整数序列,输出时数字后加一个空格。

测试说明
平台会对你编写的代码进行测试:

测试输入:
0
100
5
预期输出:
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95  

提示:
输出不换行,print()中要使用end参数,参数值根据题目 要求设定

start = int(input())  # 输入一个整数表示数列起点

# 补充一条语句,输入一个整数表示数列终点
off = int(input())

# 补充一条语句,输入一个整数表示数列的步长
x=int(input())

# 输入2条语句,在一行内输出等差数列,数字后跟一个空格
for i in range(start,off,x):
    print(i,end=' ')

第3关:输出小于n的正偶数的和

编程要求
根据提示,在右侧编辑器补充代码,接受一个正整数输入,输出小于这个数的所有非负偶数的和。

测试说明
平台会对你编写的代码进行测试:

测试输入:
101
预期输出:
2550

n=int(input())
s=0
for i in range(0,n,2):
    s=s+i
print(s)

第4关:输出小于n的正奇数的倒数的和

编程要求
根据提示,在右侧编辑器补充代码,接受一个大于1的整数输入,输出小于这个数的所有非负奇数的倒数和。

测试说明
平台会对你编写的代码进行测试:

测试输入:
101
预期输出:
2.937774848474907

测试输入:
20
预期输出:
2.1332555301595546

提示:
range(n) 序列第一个数字是0,若用到1/i时,要用range(1, n)使首项从1开始。

n=int(input())
s=0
for i in range(1,n,2):
    s=s+1/i
print(s)

第5关:输出正负交替数列的和

测试输入:
101
预期输出:
0.7803986631477527

测试输入:
20
预期输出:
0.7604599047323508

提示:
range(n) 序列第一个数字是0,若用到1/i时,要用range(1, n)使首项从1开始。

n=int(input())
result = 0                       # 累加器置0
f = 1                            # 符号变量初值1
for i in range(1, n, 2):       # 遍历不大于100的非负整数
    result = result + f * 1 / i  # 将产生的每个整数依次加到累加器上
    f = -f                       # 改变正负号
print(result) 

第6关:输出正负交替数列前n项和

测试输入:
100
预期输出:
0.7828982258896384
3.1315929035585537

测试输入:
1000
预期输出:
0.7851481634599485
3.140592653839794

n=int(input())
result = 0                       # 累加器置0
f = 1                            # 符号变量初值1
for i in range(n):             # 遍历不大于100的非负整数
    result = result + f * (1 /(2* i+1))  # 将产生的每个整数依次加到累加器上
    f = -f                       # 改变正负号
print(result) 
print(4*result)                   # 输出结果

第7关:输出不确定项数正负交替数列的的和

编程要求
根据提示,在右侧编辑器补充代码,输入一个小于1的浮点数n,计算非负奇数的倒数正负交替运算的和,直到某一项的绝对值小于或等于n,计算该项之前(不含该项)的正负交替运算的和,并输出计算和的4倍结果。

测试说明
平台会对你编写的代码进行测试:

测试输入:
0.001
预期输出:
0.7848981638974463
3.139592655589785

测试输入:
0.00001
预期输出:
0.7853931633974454
3.1415726535897814

提示:
条件表达式1/(2*i+1)中的i在使用前要先有初值
在循环体中一定要改变i的值,使条件表达式的结果超于False

n=float(input())
result=0
f=1
i=0
while True:
    result=result+f*1/(2*i+1)
    f=-f
    i+=1
    if 1/(2*i+1)<=n:
        break
print(result)
print(4*result)

第8关:百钱百鸡

编程要求
根据提示,在右侧编辑器补充代码,输入两个正整数m和n,用m枚铜钱购买n只鸡,花完全部的钱,且要求公鸡、母鸡、小鸡每样都必须有,计算公鸡、母鸡、小鸡各多少,有多个答案时分行输出。

测试说明
平台会对你编写的代码进行测试:

测试输入:
100
100
预期输出:
4 18 78
8 11 81
12 4 84

提示:
公鸡最大数量为m//5
母鸡最大数量为m//3
小鸡数量可用n-cock-hen计算
这样处理可以显著减少循环次数和循环层数,提高计算效率

m=int(input())  #钱
n=int(input())  #总数
a=m//5
b=m//3

for cock in range(1,a +1):            # 从1 开始遍历可能满足要求的公鸡数量
    for hen in range(1,b+1):  
        chicken=n-cock-hen       # 从1 开始遍历可能满足要求的母鸡数量
        if cock + hen + chicken == n and 5*cock + 3*hen + chicken// 3 ==m and chicken % 3 == 0:
            print(cock,hen,chicken)

第9关:m钱n鸡

编程要求
根据提示,在右侧编辑器补充代码,在两行中分别输入两个正整数m和n,用m枚铜钱购买n只鸡,铜钱必须用完一枚不剩(不许贪污),且要求公鸡、母鸡、小鸡每样都必须有,计算公鸡、母鸡、小鸡各多少?
若有解:
输出公鸡数量最少的一组结果,按鸡翁数、鸡母数、鸡雏数的顺序输出,数字之间用空格分隔(若公鸡数量最少时有多组解,仅输出其中母鸡数量最少的一组);
若无解:
输出“无解”

测试说明
平台会对你编写的代码进行测试:

测试输入:
100
100
预期输出:
4 18 78

测试输入:
1000
200
预期输出:
无解

提示:
1.用两层循环结合break和continue完成:

m=int(input())  #钱
n=int(input())  #总数
flag=0
for cock in range(1,m//5):
    for hen in range(1,m//3):
        chicken=n-cock-hen
        if chicken<=0:
            print("无解")
            flag=1
            break
        if cock+hen+chicken==n and hen*3+cock*5+chicken//3==m and chicken%3==0:
           print(cock,hen,chicken)
           flag=1
           break
    if flag==1:
        break
if flag==0:
    print("无解")


网站公告

今日签到

点亮在社区的每一天
去签到