第1关:计算阶梯数
任务描述
本关任务:爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请编程求解该阶梯至少有多少阶。
相关知识
为了完成本关任务,你需要掌握:1.条件语句,2.循环语句。
编程要求
根据提示,在右侧编辑器补充代码,返回最少的阶梯数。
测试说明
平台会对你编写的代码进行测试:
测试输入: 预期输出: 119
def countlevel():
'''
:return:最小阶梯数
'''
# 请在此处添加代码 #
# *************begin************#
a=7
while(1):
if a%2==1 and a%3==2 and a%5==4 and a%6==5 and a%7==0:
return a
a+=1
# **************end*************#
print(countlevel())
第2关:打印三角形图案
任务描述
本关任务:编写一个能打印三角形图案的函数。
相关知识
为了完成本关任务,你需要掌握:1.for循环嵌套语句。
编程要求
根据提示,在右侧编辑器补充代码,根据参数pow(三角形行)编写一个能打印pow行三角形图案的函数。
测试说明
平台会对你编写的代码进行测试:
测试输入:4
; 预期输出:
*
**
***
****
*
**
***
****
*
***
*****
*******
说明:程序会根据函数参数pow打印三个三角形,每个三角形pow行。
测试输入:8
; 预期输出:
*
**
***
****
*****
******
*******
********
*
**
***
****
*****
******
*******
********
*
***
*****
*******
*********
***********
*************
***************
def triangle(row):
'''
根据row值,打印三个三角形
:row:三角形行数
:return: 无返回值
'''
# 请在此处添加代码 #
# *************begin************#
for i in range(row):
for j in range(i+1):
print("*",end="")
if(i!=(row)):
print()
for i in range(row):
print((row-i-1)*" ",end="")
for j in range(i+1):
print("*",end="")
print()
for i in range (row):
print((row-i-1)*" ",end="")
for j in range(2*i+1):
print("*",end="")
print()
# **************end*************#
row = int(input())
triangle(row)
第3关:双色球选号
任务描述
本关任务:编写一个能实现双色球选号的小程序。
相关知识
为了完成本关任务,你需要掌握: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************#
t=[x for x in range(1,17)]
a=(sample(t,1))
balls.sort(reverse=False)
c=balls+a
f=1
for i in c:
if i<10:
d="0"+str(i)
else:
d=str(i)
print(d+" ",end="")
if f ==6:
print("| ",end="")
f+=1
print()
# **************end*************#
def random_select():
"""
随机选择一组号码
:return: 返回随机选择的这一组号码,如[9,12,16,20,30,33 3]
"""
# 请在此处添加代码 #
# *************begin************#
t=[x for x in range(1,34)]
return(sample(t,6))
# **************end*************#
#n为注数
def main(n):
for _ in range(n):
display(random_select())
random.seed(3)
n = int(input())
if __name__ == '__main__':
main(n)