1.11
有 n 盏灯,编号 1~n(0
2 的倍数的开关(这些灯将被关掉),第 3 个人按下所有编号为 3 的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。输入灯数和人数,输出开着的灯的编号。
比如输入:10 2 输出最后亮灯的编号:1,3,5,7,9 注意:使用循环语句实现。
n, x = input('请依次输入灯数和人数:').split(' ') n = int(n) x = int(x) led = [] # 使输入的所有灯打开 for i in range(n + 1): led.append(1) for i in range(2, x + 1): for j in range(i, n + 1, i): led[j] = -led[j] for i in range(1, n + 1): if led[i] == 1: print(i, end=',')
1.12
冒泡排序、
原始数组:[1,9,3,7,4,2,5,0,6,8]
排序后:[0,1,2,3,4,5,6,7,8,9];
要求:综合使用分支、循环结构语句实现,直接输出结果不计分。打印每一次运行的结果
initial = [1, 9, 3, 7, 4, 2, 5, 0, 6, 8] # 初始值 temp = 0 # 中间值转化 for i in range(len(initial)): for j in range(len(initial) - i-1): if initial[j] > initial[j + 1]: temp = initial[j] initial[j] = initial[j + 1] initial[j + 1] = temp print(f'第{i+1}轮变化结果:{initial}')
1.13
动物园饲养的食肉动物分大型动物和小型动物两类,规定老虎、狮子一类的大动物每次喂肉每头三斤,狐狸、山猫一类小动物每三头喂一斤。该动物园共有这两类动物 100 头,每
次需喂肉 100 斤,编程输出大、小动物的数量。
for big in range(1, 101): if 3 * big + 1 / 3 * (100 - big) == 100: print(f'大型动物{big},小型动物{100 - big}')
1.14
从键盘接收一个整数 n(n>=4),请打印一个由“*”号组成的长度和宽度均为 n 的空心矩形。例如输入:4 你要在屏幕打印如下图形:
n = int(input('请输入一个整数n:')) for i in range(n): for j in range(n): if i == 0 or j == 0 or i == n - 1 or j == n - 1: print('*', end='') else: print('', end=' ') print()
n = int(input('请输入一个整数n:')) for i in range(n): for j in range(n): if i == 0 or j == 0 or i == n - 1 or j == n - 1: print('*', end='') else: print('', end=' ') print()
1.15
注意输出指定空心正方形。输入第一个数字为边长,第二个字符为组成图形边的字符。例如:输入
4 a (4为空心正方形的大小,a为显示的字符)
输出
aaaa
a a
a a
aaaa
n, char = input('请依次输入边长和字符:').split(' ') n = int(n) for i in range(n): for j in range(n): if i == 0 or j == 0 or i == n - 1 or j == n - 1: print(f'{char}', end='') else: print('', end=' ') print()
1.16
已知鸡和兔的总数量为 n,总腿数为 m。输入 n 和 m,依次输出鸡和兔的数目,如果无解, 则输出“No answer”(不要引号)
n, m = input('依次输入n,m:').split(' ') n = int(n) m = int(m) rabbit = 0 f = True # 判断答案是否存在 for rabbit in range(n + 1): if rabbit * 4 + (n - rabbit) * 2 == m: f = False print(f'兔的数量:{rabbit},鸡的数量:{n - rabbit}') if f: print('No answer')
1.17
中国古代的《算经》记载了这样一个问题:公鸡 5 文钱 1 只,母鸡 3 文钱 1 只,小鸡 1
文钱 3 只,如果用 100 文钱买 100 只鸡,那么公鸡、母鸡和小鸡各应该买多少只呢?现在请
你编程求出所有的解,每个解输出 3 个整数,打印在一行,用空格隔开,分别代表买的公鸡、母鸡、小鸡的数量。
注意:100 文钱要正好用完。请输出所有的解,每个解占一行。
cock, hen, chick = 0, 0, 0 # 公鸡,母鸡,小鸡 for cock in range(100): for hen in range(100): for chick in range(100): if cock + hen + chick == 100 and cock * 3 + hen * 1 + 1 / 3 * chick == 100: print(cock, hen, chick, sep=' ')
1.18
啤酒每罐 2.3 元,饮料每罐 1.9 元。小明买了若干啤酒和饮料,一共花了 82.3 元。我们还知道他买的啤酒比饮料的数量少,请你编程计算他买了几罐啤酒。
max_beer = int(82.3 / 2.3) max_drink = int(82.3 / 1.9) for beer in range(max_beer): for drink in range(max_drink): if beer * 2.3 + drink * 1.9 == 82.3 and beer < drink: print(beer)