1.第1关:计算阶梯数
任务描述
本关任务:爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请编程求解该阶梯至少有多少阶。
相关知识
为了完成本关任务,你需要掌握:1.条件语句,2.循环语句。
编程要求
根据提示,在右侧编辑器补充代码,返回最少的阶梯数。
测试说明
平台会对你编写的代码进行测试:
测试输入:
预期输出:
119
def countlevel():
'''
:return:最小阶梯数
'''
# 请在此处添加代码 #
# *************begin************#
i = 1
while i >= 1:
if i%2 == 1 and i%3==2 and i%5==4 and i%6==5 and i%7==0:
return i
i += 1
# **************end*************#
print(countlevel())
- 第2关:打印三角形图案
任务描述
本关任务:编写一个能打印三角形图案的函数。
相关知识
为了完成本关任务,你需要掌握:1.for循环嵌套语句。
编程要求
根据提示,在右侧编辑器补充代码,根据参数pow(三角形行)编写一个能打印pow行三角形图案的函数。
测试说明
平台会对你编写的代码进行测试:
测试输入:4;
预期输出:
说明:程序会根据函数参数pow打印三个三角形,每个三角形pow行。
测试输入:8;
预期输出:
def triangle(row):
'''
根据row值,打印三个三角形
:row:三角形行数
:return: 无返回值
'''
# 请在此处添加代码 #
# *************begin************#
for i in range(1,row+1):
print('*'*i)
for i in range(1,row+1):
for j in range(row-i):
print(' ',end='')
print('*'*i)
a = 1
for i in range(row):
for j in range(row-1-i):
print(' ',end='')
for k in range(a):
print('*',end='')
a += 2
print('\n',end='')
# **************end*************#
row = int(input())
triangle(row)
- 双色球选号
任务描述
本关任务:编写一个能实现双色球选号的小程序。
相关知识
为了完成本关任务,你需要掌握:1.条件语句,2.列表操作,3.循环语句,4函数定义及调用。
编程要求
根据提示,在右侧编辑器补充代码,编写一个能实现双色球选号的小程序。
双色球选号由7个数字组成y,其中有6个红球,其号码的取值范围为[1,33],一个蓝球的取值范围为[1,16],要求6个红球从小到大排列,蓝球在最后输出。其输出格式为09 12 16 20 30 33 | 03。(注意,如双色球号码为3,则必须输出03)
测试说明
平台会对你编写的代码进行测试:
测试输入:7;
输入说明:选7注
预期输出:
09 12 16 20 30 33 | 03
01 07 08 09 18 31 | 16
05 08 21 26 28 31 | 05
01 03 06 22 25 33 | 02
02 09 16 20 27 28 | 13
15 19 24 26 28 32 | 05
02 05 07 16 24 32 | 09
输出说明:生成7注双色球号。|后面的数字为蓝球的号码
提示:等概率的生成一组无重复的数,可以采用sample函数,其案例如下
如要在1-10中等概率抽取6位数,代码如下
from random import sample
t = [x for x in range(1, 11)]
print(sample(t,6))
from random import randrange, randint, sample
import random
def display(balls):
"""
按照题目所要求格式输出列表中的双色球号码
:param balls:双色球号码列表,如[9,12,16,20,30,33 3]
:print:输出格式为09 12 16 20 30 33 | 03
:return: 无返回值
"""
# *************begin************#
blue = balls[len(balls) - 1]
red = balls[:len(balls) - 1]
red.sort(reverse=False)
for i in range(len(red)):
print('{:0>2}'.format(red[i]), end=" ")
print('| {:0>2} '.format(blue))
# **************end*************#
def random_select():
"""
随机选择一组号码
:return: 返回随机选择的这一组号码,如[9,12,16,20,30,33 3]
"""
# *************begin************#
blue_list = sample([x for x in range(1, 34)], 6)
red_list = sample([x for x in range(1, 17)], 1)
return blue_list + red_list
# **************end*************#
# n为注数
def main(n):
for _ in range(n):
display(random_select())
random.seed(3)
n = int(input())
if __name__ == '__main__':
main(n)