6-1 函数的定义 (5 分)
设f(x)=x* x+2, 从键盘上给a,b,c输入数值,求f(a)+f(b)+f(c)的值。利用函数来实现,完成下面的程序。 #完成函数f @@@
a=int(input( )) b=int(input( )) c=int(input( )) print(f(a)+f(b)+f(c))
参考答案
写法一
f = lambda x: x * x + 2
写法二
def f(x):
return x * x + 2
6-2 求素数 (32 分)
素数是仅可以被自身和1整除的数。0和1不是素数。 编写一个名为isPrime的函数,将一个整数作为参数,如果该参数是素数则返回True,否则返回False。
函数接口定义:
isPrime(n)
n是一个整数,n为素数时返回True,n不为素数则返回False。例如,5是素数,函数返回True,6不是素数,函数返回False。
裁判测试程序样例:
/* 请在这里填写答案 */
def main():
x = int(input())
if isPrime(x):
print(x,"is a prime!")
else:
print(x, "is not a prime!")
main()
输入样例1:
在这里给出一组输入。例如:
5
结尾无空行
输出样例1:
在这里给出相应的输出。例如:
5 is a prime!
结尾无空行
输入样例2:
在这里给出一组输入。例如:
6
结尾无空行
输出样例2:
在这里给出相应的输出。例如:
6 is not a prime!
结尾无空行
输入样例3:
在这里给出一组输入。例如:
0
结尾无空行
输出样例3:
在这里给出相应的输出。例如:
0 is not a prime!
结尾无空行
参考答案
import math
def isPrime(number):
result = False
if number > 1:
for i in range(2, int(math.sqrt(number)) + 1):
if (number % i) == 0:
break
else:
result = True
return result
6-3 回文数 (10 分)
本题要求实现一个函数,判断某整数是否是回文数,如果是,返回True,否则返回False。回文数指的是,若某整数正着读和倒着读都一样,则称该数为回文数。比如8778、12321等。
函数接口定义:
def isHuiwen(n)
其中参数n是任意整数。
裁判测试程序样例:
/* 请在这里填写答案 */
n = int(input())
if isHuiwen(n):
print("yes")
else:
print("no")
输入样例:
12321
结尾无空行
输出样例:
yes
结尾无空行
输入样例:
1232
结尾无空行
输出样例:
no
结尾无空行
参考答案
def isHuiwen(number):
number = str(number)
reversal = ""
for s in number:
reversal = s + reversal
return True if number == reversal else False
6-4 编写函数判断水仙花数 (10 分)
给定一个三位数n
,要求编写函数isflower(n)
判断n
是否为水仙花数,如果是,则返回True
,否则返回False
。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153等于1的立方加上5的立方加上3的立方之和。
函数接口定义:
在这里描述函数接口。例如:
isflower (n)
其中 n
是传入的参数,表示需要判断的三位数。 n
的值的范围为[100,999]。
裁判测试程序样例:
/* 请在这里填写答案 */
n = eval(input())
if isflower(n)==True:
print('Yes')
else:
print('No')
输入样例:
在这里给出一组输入。例如:
371
结尾无空行
输出样例:
在这里给出相应的输出。例如:
Yes
结尾无空行
参考答案
def isflower(number):
num_str, sum_all = str(number), 0
for i in num_str:
sum_all += int(i) ** 3
return True if number == sum_all else False
7-1 jmu-python-分段函数 (10 分)
本题目要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数):
输入格式:
输入在一行中给出实数 x。
输出格式:
在一行中按“f(x)=result”的格式输出,其中x与result都保留两位小数。
输入样例:
0.76
结尾无空行
输出样例:
f(0.76)=1.20
参考答案
def f(x):
if x < 3:
return 1.2
elif x == 3:
return 10
elif x > 3:
return 2 * x + 1
n = eval(input())
print("f({:.2f})={:.2f}".format(n, f(n)))
7-2 列出完数 (10 分)
输入一个整数n,要求输出[1,n]范围内的所有完数。完数是一个正整数,该数恰好等于其所有不同真因子之和。例如,6、28是完数,因为6=1+2+3,28=1+2+4+7+14;而24不是完数,因为24≠1+2+3+4+6+8+12=36。
输入格式:
测试数据有多组,处理到文件尾。每组测试数据输入一个整数n(1≤n≤10000)。
输出格式:
对于每组测试,首先输出n和一个冒号“:”;然后输出所有不大于n的完数(每个数据之前留一个空格);若[1,n]范围内不存在完数,则输出“NULL”。引号不必输出。具体输出格式参考输出样例。
输入样例:
100
5000
5
输出样例:
100: 6 28
5000: 6 28 496
5: NULL
出处:
ZJUTOJ 1190