目录
6-13 整数数位和(高教社,《Python编程基础及应用》习题8-3)
6-14 编写函数计算f(i) = 1/2 + 2/3 + 3/4 + ... + i/(i+1) (高教社,《Python编程基础及应用》习题8-4)
6-15 编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)
6-16 打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7)
6-30 编写生成斐波那契数列的函数并调用。(升级版v2.0)
6-31 使用递归法对整数进行因数分解,输出成其质因数相乘的形式。
6-32 本题是一个demo函数,通过本程序体会位置参数的特点。
6-33 本题是一个demo函数,通过本程序体会默认值参数的特点。
6-34 本题是一个demo函数,通过本程序体会关键参数的特点。
6-35 编写函数,接收字符串参数,返回一个元组,其中第一个元素为大写字母个数,第二个元素为小写字母个数。
6-36 编写函数,接收一个正整数t为参数,打印杨辉三角前t行。
6-38 编写函数,接收参数a和n,计算并返回形式如a+aa+aaa+aaaa+…+aaa…aaa的表达式前n项的值,其中a为小于10的自然数。
6-1 使用函数求素数和
分数 20
全屏浏览
切换布局
作者 陈春晖
单位 浙江大学
使用函数求素数和
prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False.
PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。
函数接口定义:
在这里描述函数接口: prime(p),返回True表示p是素数,返回False表示p不是素数 PrimeSum(m,n),函数返回素数和
裁判测试程序样例:
/* 请在这里填写答案 */ m,n=input().split() m=int(m) n=int(n) print(PrimeSum(m,n))
输入样例:
在这里给出一组输入。例如:
1 10
输出样例:
在这里给出相应的输出。例如:
17
def prime(p):
if p==1:
return False
for i in range(2,p):
if p%i==0:
return False
return True
def PrimeSum(m,n):
sum=0
for i in range(m,n+1):
if prime(i):
sum+=i
return sum
6-2 使用函数输出指定范围内Fibonacci数的个数
分数 20
全屏浏览
切换布局
作者 陈春晖
单位 浙江大学
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m<n≤100000)之间的所有Fibonacci数的数目。
所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,fib(0)=fib(1)=1。其中函数fib(n)须返回第n项Fibonacci数;函数PrintFN(m,n)用列表返回[m, n]中的所有Fibonacci数。
函数接口定义:
在这里描述函数接口。例如: fib(n),返回fib(n)的值 PrintFN(m,n),用列表返回[m, n]中的所有Fibonacci数。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如: /* 请在这里填写答案 */ m,n,i=input().split() n=int(n) m=int(m) i=int(i) b=fib(i) print("fib({0}) = {1}".format(i,b)) fiblist=PrintFN(m,n) print(len(fiblist))
输入样例:
在这里给出一组输入。例如:
20 100 6
输出样例:
在这里给出相应的输出。例如:
fib(6) = 13
4
def fib(n):
list=[1,1]
i=1
while i<n:
list.append(list[i]+list[i-1])
i+=1
return list[i]
def PrintFN(m,n):
list=[1,1]
i=1
while list[i]<=n:
list.append(list[i]+list[i-1])
i+=1
list1=[]
for j in range(0,len(list)):
if list[j]>=m and list[j]<=n:
list1.append(list[j])
return list1
6-3 人民币美元双向兑换
分数 10
全屏浏览
切换布局
作者 郭晓曦
单位 集美大学
本题要求实现一个人民币与美元的双向兑换函数change(money),可实现1美元=6.709人民币的双向兑换。输出兑换的结果保留2位小数。
函数接口定义:
在这里描述函数接口。例如:
change( money )
其中 money都是用户传入的参数,表示待兑换的钱数。
裁判测试程序样例:
/* 请在这里填写答案 */
x = input()
change(x)
输入样例1:
在这里给出一组输入。例如:
$1
输出样例1:
在这里给出相应的输出。例如:
1美元 = 6.71人民币
输入样例2:
在这里给出一组输入。例如:
¥1
输出样例2:
在这里给出相应的输出。例如:
1人民币 = 0.15美元
def change( money ):
qian=0
if money[0]=='$':
qian=int(money[1:])*6.709
print('%s美元 = %.2f人民币'%(money[1:],qian))
else:
qian=int(money[1:])*(1/6.709)
print('%s人民币 = %.2f美元'%(money[1:],qian))
6-4 菲波那契数列
分数 20
全屏浏览
切换布局
作者 hanjp
单位 杭州电子科技大学
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。 给出一个正整数a,要求菲波那契数列中第a个数是多少。
输入两个正整数a和b(1<=a<b<=100)
输出菲波那契数列的第a项到第b项。
函数接口定义:
fib ( n )
n
是传入的参数。 n
的值不超过100的范围;函数须返回列表,列表的第i
项存放数列的第i
项。
裁判测试程序样例:
/* 请在这里填写答案 */ a,b=[int(x) for x in input().split()] f=fib(b) for i in range(a,b+1): print(f[i],end=' ')
输入样例:
在这里给出一组输入。例如:
4 6
输出样例:
在这里给出相应的输出。例如:
3 5 8
def fib(n):
list=[0,1,1]
for i in range(2,n+1):
list.append(list[i]+list[i-1])
return list
6-5 回文数
分数 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(n):
n=str(n)
n1=n[::-1]
if n1==n:
return True
else:
return False
6-6 编写函数判断水仙花数
分数 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(n):
sum=0
n1=n
while n!=0:
a=n%10
sum+=a*a*a
n//=10
if sum==n1:
return True
else:
return False
6-7 编写函数求特殊a串和
分数 5
全屏浏览
切换布局
作者 王祥荣
单位 宁波财经学院
给定两个均不超过9的正整数a
和n
,要求编写函数fn(a,n)
求a+aa+aaa++⋯+aa⋯aa
(n
个a
)之和,fn
须返回的是数列和
函数接口定义:
在这里描述函数接口。例如: fn(a,n)
其中 a
和 n
都是用户传入的参数。 a
的值在[1,9]范围;n
是[1,9]区间内的个位数。函数须返回级数和
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如: /* 请在这里填写答案 */ n,a=list(map(int,input().split())) s=fn(a,n) print (s)
输入样例:
在这里给出一组输入。例如:
3 2
输出样例:
在这里给出相应的输出。例如:
246
def fn(a,n):
sum=0
k=0
for i in range(0,n):
k=k*10+a
sum+=k
return sum
6-8 写函数求满足要求三位数的个数
分数 5
全屏浏览
切换布局
作者 王祥荣
单位 宁波财经学院
要求实现一个函数,统计给定区间内的三位数中至少有两位数字相同的完全平方数(如144、676)的个数。
函数接口定义:
search(n);
其中传入的参数n是一个三位数的正整数。函数search返回[101, n]区间内所有满足条件的数的个数。
裁判测试程序样例:
/* 请在这里填写答案 */ n = int(input()) cnt = search(n) print ('count={}'.format(cnt))
输入样例:
500
输出样例:
count=6
def search(n):
cnt=0
for i in range(11,32):
if i*i<=n:
k=str(i*i)
if k[0]==k[1] or k[0]==k[2] or k[1]==k[2]:
cnt+=1
return cnt
6-9 写函数判断质数
分数 5
全屏浏览
切换布局
作者 王祥荣
单位 宁波财经学院
实现一个函数,判断参数是否是质数,是的话返回True,否则返回False
函数接口定义:
def isPrime(num);
参数num表示要判断的正整数。返回值为True表示是质数,返回False表示不是质数。
裁判测试程序样例:
/* 请在这里填写答案 */ num=eval(input()) if isPrime(num): print ('yes') else: print ('no')
输入样例:
97
输出样例:
yes
def isPrime(num):
if num<2:
return False
for i in range(2,num):
if num%i==0:
return False
else:
return True
6-10 编写函数计算圆面积
分数 5
全屏浏览
切换布局
作者 王祥荣
单位 宁波财经学院
1.要求编写函数getCircleArea(r)计算给定半径r的圆面积,函数返回圆的面积。
2.要求编写函数get_rList(n) 输入n个值放入列表并将列表返回
函数接口定义:
getCircleArea(r); get_rList(n);
传入的参数r表示圆的半径,getCircleArea函数返回圆的面积。参数n表示列表中元素的个数,函数get_rList返回一个输入的列表。注意:圆周率请使用3.1415926
主程序取rList中所有元素,对每个元素作为半径参数调用getCircleArea,并按指定格式输出。
裁判测试程序样例:
/* 请在这里填写答案 */ n = int(input()) rList = get_rList(n) for e in rList: print ('{:.3f}' .format( getCircleArea(e)))
输入样例:
3
1
2
3
输出样例:
3.142
12.566
28.274
def getCircleArea(r):
return 3.1415926*r*r
def get_rList(n):
list=[]
for i in range(0,n):
k=int(input())
list.append(k)
return list
6-11 编写函数统计指定数字的个数
分数 5
全屏浏览
切换布局
作者 王祥荣
单位 宁波财经学院
本题要求实现一个统计整数中指定数字的个数的简单函数。
CountDigit(number,digit )
其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。
函数接口定义:
函数接口定义:
int CountDigit (number, digit );
参数number是整数,参数digit为[1,9]区间的整数,函数返回number中digit出现的次数。
裁判测试程序样例:
/* 请在这里填写答案 */ number,digit = list(map(int,input().split())) cnt = CountDigit(number,digit) print ("Number of digit {0} in {1}: {2}".format(digit,number,cnt))
输入样例:
-21252 2
输出样例:
Number of digit 2 in -21252: 3
def CountDigit(number, digit ):
cnt=0
if number<0:
number=-number
while number!=0:
if number%10==digit:
cnt+=1
number//=10
return cnt
6-12 编写函数计算薪资
分数 5
全屏浏览
切换布局
作者 王祥荣
单位 宁波财经学院
某公司销售员底薪为5000,销售业绩与利润提成的关系如下表所示(计量单位:元)
编写函数,计算员工月薪。
函数接口定义:
salary(sales)
其中 参数 sales表示员工的月销售业绩。
裁判测试程序样例:
/* 请在这里填写答案 */ sales = eval(input()) print ("{:.2f}".format(salary(sales)))
输入样例:
50800
输出样例:
15160.00
def salary(sales):
sum=5000
if sales<=10000:
return sum
elif sales<=20000:
return sum+sales*0.1
elif sales<=50000:
return sum+sales*0.15
elif sales<=100000:
return sum+sales*0.2
else:
return sum+sales*0.25
6-13 整数数位和(高教社,《Python编程基础及应用》习题8-3)
分数 4
全屏浏览
切换布局
作者 海洋饼干叔叔
单位 重庆大学
编写一个函数,该函数接受一个正整数作为参数,返回该整数的各位数字之和。
函数接口定义:
def digitSum(v)
v为输入整数(正整数);
函数返回一个整数,其值为v的各位数字之和。
裁判测试程序样例:
a = int(input()) print(digitSum(a))
输入样例:
291
输出样例:
12
def digitSum(v):
sum=0
while v!=0:
sum+=v%10
v//=10
return sum
6-14 编写函数计算f(i) = 1/2 + 2/3 + 3/4 + ... + i/(i+1) (高教社,《Python编程基础及应用》习题8-4)
分数 4
全屏浏览
切换布局
作者 海洋饼干叔叔
单位 重庆大学
编写函数计算f(i) = 1/2 + 2/3 + 3/4 + ... + i/(i+1) 。
函数接口定义:
def f(i)
i为正整数,返回结果浮点数。
裁判测试程序样例:
v=int(input()) print("%.4f" % f(v))
输入样例:
5
输出样例:
3.5500
def f(i):
sum=0
for j in range(1,i+1):
sum+=j/(j+1)
return sum
6-15 编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)
分数 4
全屏浏览
切换布局
作者 海洋饼干叔叔
单位 重庆大学
编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)
函数接口定义:
def caculate(*t)
打*号的参数t接受多个参数成员,参数成员预期为整数或浮点数类型。
裁判测试程序样例:
s = input().split() #接受输入字符串并按空格分拆,存入列表,列表成员为字符串类型 t = [float(x) for x in s] #使用列表推导将列表s中的成员全部转换成浮点数,存入另一个列表t print("%.4f" % caculate(*t))
输入样例:
3 2 1
输出样例:
6.0000
def caculate(*t):
sum=1
for i in t:
sum*=i
return sum
6-16 打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7)
分数 6
全屏浏览
切换布局
作者 海洋饼干叔叔
单位 重庆大学
回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。请实现下述两个函数,帮助测试程序完成如下功能:从键盘输入正整数N, 打印从1 ~ N(包含N)的全部回文素数,一行一个。
函数接口定义:
def isPrime(num): def reverseNumber(num):
isPrime()用于判断整数num是否是素数,是返回True, 否则返回False.
reverseNumber()用于返回整数num的反向数,321的反向数为123, 320的反向数为23。
裁判测试程序样例:
N = int(input()) for n in range(1,N+1): if isPrime(n) and reverseNumber(n) == n: print(n)
输入样例:
400
输出样例:
2
3
5
7
11
101
131
151
181
191
313
353
373
383
def isPrime(num):
if num<2:
return False
for i in range(2,num):
if num%i==0:
return False
else:
return True
def reverseNumber(num):
num1=0
while num!=0:
num1=num1*10+num%10
num//=10
return num1
6-17 两个数的最大值
分数 10
全屏浏览
切换布局
作者 殷伟凤
单位 浙江传媒学院
编写一个名为max的函数,接受两个整数作为参数,并返回两者中的较大值。例如,如果7和12作为参数传递给函数,该函数将返回12。
函数接口定义:
max(x, y)
x 和 y是传入的两个整数。
裁判测试程序样例:
/* 请在这里填写答案 */ def main(): a = int(input()) b = int(input()) print(max(a, b)) main()
输入样例:
在这里给出一组输入。例如:
2
3
输出样例:
3
def max(x, y):
if x>y:
return x
else:
return y
6-18 求素数
分数 32
全屏浏览
切换布局
作者 殷伟凤
单位 浙江传媒学院
素数是仅可以被自身和1整除的数。0和1不是素数。
编写一个名为isPrime的函数,将一个整数作为参数,如果该参数是素数则返回True,否则返回False。