sdut-python-实验五-函数、模块、包(函数题)
6-1 sdut-使用函数求a+aa+aaa++⋯+aa.....aaa(n个a)之和。
分数 10
作者 周雪芹
单位 山东理工大学
给定两个均不超过9的正整数a和n,要求:编写函数fn(a,n), 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列之和。
函数接口定义:
▾
def fn(a,n):
其中, a 和 n 都是传入的参数。 a 的值在[1, 9]范围;n 是[1, 9]区间内的个位数。函数返回数列之和。
裁判测试程序样例:
/* 请在这里填写答案 */
a,b=input().split()
s=fn(int(a),int(b))
print(s)
输入样例:
在这里给出一组输入。例如:
2 3
输出样例:
在这里给出相应的输出。例如:
246
实现代码:
def fn(a, n):
t=a
sum=0
while n:
n-=1
sum+=a
a=a*10+t
return sum
6-2 sdut-使用函数求区域内的素数之和
分数 10
作者 周雪芹
单位 山东理工大学
设计函数,求指定范围内的素数之和。
函数1:prime(p), 用户传入参数p,若它为素数时返回True,否则返回False.
函数2:PrimeSum(m,n),返回区间[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 0
else:
for i in range(2,int(p**0.5)+1):
if p%i==0:
return 0
return 1
def PrimeSum(m,n):
sum=0
for i in range(m,n+1):
if prime(i):
sum+=i
return sum
6-3 sdut-使用函数统计数字字符在某数字中出现的个数
分数 10
作者 周雪芹
单位 山东理工大学
设计函数,统计数字字符在某数字中出现的个数。
函数接口定义:
CountDigit(number,digit )
其中,number是整数,digit为[1, 9]区间内的整数数值;返回number中digit出现的次数。
裁判测试程序样例:
/* 请在这里填写答案 */
number,digit=input().split()
number=int(number)
digit=int(digit)
count=CountDigit(number,digit )
print("Number of digit {} in {}:{}".format(digit, number, count))
输入样例:
在这里给出一组输入。例如:
-21252 2
输出样例:
Number of digit 2 in -21252: 3
实现代码:
def CountDigit(number,digit):
number=abs(number)
sum=0
while number:
t=number%10
if t==digit:
sum+=1
number//=10
return sum
6-4 sdut-使用函数输出Fibonacci数列的值与指定范围内Fibonacci数值的个数
分数 10
作者 周雪芹
单位 山东理工大学
设计函数实现:计算第n项Fibonacci数列数值,并求出两正整数a和b所组成的闭区间[a,b](0<a<b≤100000)之间的所有Fibonacci数的数目。
Fibonacci数列,任一项数字是前两项的和(最开始两项均定义为1)的数列, fib(0)=fib(1)=1。
函数接口定义:
fib(n) #函数1
fibs(a, b) #函数2
fib(n):返回第n项Fibonacci数;
fibs(a, b):返回 [a, b] 中的所有Fibonacci数组成的列表。
n、a、b均为正整数。
裁判测试程序样例:
/* 请在这里填写答案 */
n,a,b=input().split()
n=int(n)
a=int(a)
b=int(b)
fb=fib(n)
print("fib({0}) = {1}".format(n,fb))
fiblist=fibs(a, b)
print(len(fiblist))
输入样例:
在这里给出一组输入。例如:
6 20 100
输出样例:
在这里给出相应的输出。例如:
fib(6) = 13
4
实现代码:
def fib(n):
a=1
b=1
n-=1
while n:
n-=1
t=a
a=b
b+=t
return b
def fibs(a, b):
l=[]
x=1
y=1
if a==1:
l.append(1)
l.append(1)
while y<=b:
t=x
x=y
y+=t
if a<=y<=b:
l.append(y)
return l
6-5 sdut-利用函数得到缩写词
分数 10
作者 周雪芹
单位 山东理工大学
缩写词是由一个短语中每个单词的第一个字母组成,均为大写。
例如,CPU是短语“central processing unit”的缩写。
函数接口定义:
acronym(phrase);
参数:phrase是字符串短语,函数返回:短语的缩写词。
裁判测试程序样例:
/* 请在这里填写答案 */
phrase=input()
print(acronym(phrase))
输入样例:
central processing unit
输出样例:
CPU
实现代码:
def acronym(phrase):
ss=""
x=len(phrase)
if phrase[0]!=' ':
ss+=phrase[0].upper()
for i in range(x):
if phrase[i]!=" " and phrase[i-1]==' ':
ss+=phrase[i].upper()
return ss
6-6 sdut-求嵌套列表的平均值
分数 10
作者 周雪芹
单位 山东理工大学
Avg是一个求平均值的函数。它的参数是嵌套列表,求每个元素的平均值。每个元素是列表,至少有1个值。
函数接口定义:
Avg(lst)
lst是一个二维嵌套列表,该函数返回值是每个元素的平均值组成的列表。
裁判测试程序样例:
/* 请在这里填写答案 */
lst=eval(input())
result=Avg(lst)
for value in result:
print("{:.1f}".format(value),end=" ")
输入样例:
[[95,92,80],[66,75,40],[89,72,100,91]]
输出样例:
89.0 60.3 88.0
实现代码:
def Avg(lst):
x=len(lst)
l=[]
for i in range(x):
a=sum(lst[i])
b=len(lst[i])
l.append(a/b)
return l
更多推荐


所有评论(0)