第1关:递归函数 - 汉诺塔的魅力
编程要求
本关的编程任务是补全src/step1/recursive.py文件的代码,实现相应的功能。具体要求如下:
定义一个函数fact(n),实现的功能是对输入的正整数n进行n!运算;
调用函数fact(n),对输入的正整数n进行阶乘运算,并输出计算结果。
本关涉及的代码文件src/step1/recursive.py的代码框架如下:
coding=utf-8
输入正整数n
n = int(input())
请在此添加代码,对输入的正整数n进行阶乘运算,并输出计算结果。
########## Begin ##########
########## End ##########
测试说明
本关的测试文件是src/step1/recursive.py,测试过程如下:
平台自动编译生成recursive.exe;
平台运行recursive.exe,并以标准输入方式提供测试输入;
平台获取recursive.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step1/recursive.py的样例测试集:
测试输入:
5
预期输出:
120
测试输入:
6
预期输出:
720
测试输入:
7
预期输出:
5040
测试输入:
8
预期输出:
40320
开始你的任务吧,祝你成功!
代码
# coding=utf-8
# 输入正整数n
n = int(input())
# 请在此添加代码,对输入的正整数n进行阶乘运算,并输出计算结果。
########## Begin ##########
def fact(n):
if n == 1:
return 1
result = n * fact(n - 1)
return result
print(fact(n))
########## End ##########
第2关:lambda 函数 - 匿名函数的使用
编程要求
本关的编程任务是补全src/step2/lambda.py文件的代码,实现相应的功能。具体要求如下:
使用lambda来创建匿名函数,然后判断输入的两个数值的大小,并分别输出较大的值和较小的值。
本关涉及的代码文件src/step2/lambda.py的代码框架如下:
coding=utf-8
请在此添加代码,使用lambda来创建匿名函数,能够判断输入的两个数值的大小,
########## Begin ##########
########## End ##########
输入两个正整数
a = int(input())
b = int(input())
输出较大的值和较小的值
print(‘较大的值是:%d’ % MAXIMUM(a,b))
print(‘较小的值是:%d’ % MINIMUM(a,b))
测试说明
本关的测试文件是src/step2/lambda.py,测试过程如下:
平台自动编译生成lambda.exe;
平台运行lambda.exe,并以标准输入方式提供测试输入;
平台获取lambda.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step2/lambda.py的样例测试集:
测试输入:
5
12
预期输出:
较大的值是:12
较小的值是:5
测试输入:
7
3
预期输出:
较大的值是:7
较小的值是:3
测试输入:
120
89
预期输出:
较大的值是:120
较小的值是:89
测试输入:
13
110
预期输出:
较大的值是:110
较小的值是:13
开始你的任务吧,祝你成功!
代码
# coding=utf-8
# 请在此添加代码,使用lambda来创建匿名函数,能够判断输入的两个数值的大小
########## Begin ##########
MAXIMUM = lambda a,b:max(a,b)
MINIMUM = lambda a,b:min(a,b)
########## End ##########
# 输入两个正整数
a = int(input())
b = int(input())
# 输出较大的值和较小的值
print('较大的值是:%d' % MAXIMUM(a,b))
print('较小的值是:%d' % MINIMUM(a,b))
第3关:Map-Reduce - 映射与归约的思想
编程要求
本关的编程任务是补全src/step3/map-reduce.py文件的代码,实现相应的功能。具体要求如下:
将输入的一个正整数分解质因数,并将结果输出。例如:输入90,打印出90=2335。
本关涉及的代码文件src/step3/map-reduce.py的代码框架如下:
#coding=utf-8
#输入一个正整数
x = int(input())
#请在此添加代码,将输入的一个正整数分解质因数
########## Begin ##########
########## End ##########
#输出结果,利用map()函数将结果按照规定格式输出
print(x,’=’,’*’.join(map(str,result)))
测试说明
本关的测试文件是src/step3/map-reduce.py,测试过程如下:
平台自动编译生成map-reduce.exe;
平台运行map-reduce.exe,并以标准输入方式提供测试输入;
平台获取map-reduce.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step3/map-reduce.py的样例测试集:
测试输入:
80
预期输出:
80 = 22225
测试输入:
79
预期输出:
79 = 79
测试输入:
225
预期输出:
225 = 335*5
测试输入:
123456
预期输出:
123456 = 2222223*643
开始你的任务吧,祝你成功!
代码
# coding=utf-8
# 输入一个正整数
x = int(input())
# 请在此添加代码,将输入的一个正整数分解质因数
########## Begin ##########
y = x
result = []
while y > 1:
for i in range(2,y+1):
if y%i==0:
y = y//i
result.append(str(i))
break
########## End ##########
# 输出结果,利用map()函数将结果按照规定字符串格式输出
print(x,'=','*'.join(map(str,result)))