前言
Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ? 自我介绍 ?(?ˊ?ˋ)? 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~) 学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
往期题目集
【PTA|Python】浙大版《Python 程序设计》题目集:第一章 【PTA|Python】浙大版《Python 程序设计》题目集:第二章 【PTA|Python】浙大版《Python 程序设计》题目集:第三章 【PTA|Python】浙大版《Python 程序设计》题目集:第四章 【PTA|Python】浙大版《Python 程序设计》题目集:第五章 【PTA|Python】浙大版《Python 程序设计》题目集:第六章
函数练习题
第6章函数-1 使用函数求特殊a串数列和 (10 分)
题目
给定两个均不超过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]区间内的个位数。函数须返回级数和
裁判测试程序样例:
/* 请在这里填写答案 */ a,b=input().split() s=fn(int(a),int(b)) print(s)
输入样例: 在这里给出一组输入。例如:
2 3
输出样例: 在这里给出相应的输出。例如:
246
解答
def fn(a,n):
ans=0
num=0
while n:
num=num*10+a
ans+=num
n-=1
return ans
第6章函数-2 使用函数求素数和 (20 分)
题目
使用函数求素数和 ? prime§, 其中函数prime当用户传入参数p为素数时返回True,否则返回False. PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。 ? 函数接口定义:
在这里描述函数接口: prime§,返回True表示p是素数,返回False表示p不是素数 PrimeSum(m,n),函数返回素数和
裁判测试程序样例:
/* 请在这里填写答案 */ m,n=input().split() m=int(m) n=int(n) print(PrimeSum(m,n))
输入样例: 在这里给出一组输入。例如:
1 10
输出样例: 在这里给出相应的输出。例如:
17
解答
import math
def prime(p):
p = int(p)
if p == 1:
return False
for i in range(2, int(math.sqrt(p))+1):
if p % i == 0:
return False
return True
def PrimeSum(m, n):
ans = 0
for i in range(m, n+1):
if prime(i):
ans += i
return ans
第6章函数-3 使用函数统计指定数字的个数 (20 分)
题目
本题要求实现一个统计整数中指定数字的个数的简单函数。 CountDigit(number,digit )
其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。 ? 函数接口定义:
在这里描述函数接口。例如: CountDigit(number,digit ),返回digit出现的次数
裁判测试程序样例:
/* 请在这里填写答案 */ number,digit=input().split() number=int(number) digit=int(digit) count=CountDigit(number,digit ) print(“Number of digit 2 in “+str(number)+”:”,count)
输入样例: 在这里给出一组输入。例如:
-21252 2
输出样例: 在这里给出相应的输出。例如:
Number of digit 2 in -21252: 3
解答
def CountDigit(number, digit):
count = 0
number = abs(number)
while number != 0:
if number % 10 == digit:
count += 1
number = number//10
return count
第6章函数-4 使用函数输出指定范围内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):
a = 0
b = 1
while n:
a, b = b, a+b
n -= 1
return b
def PrintFN(m, n):
count = []
index = 1
while fib(index) <= n:
if fib(index) >= m:
count.append(fib(index))
index += 1
return count
第6章函数-5 使用函数求余弦函数的近似值 (20 分)
题目
本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加): cos(x)=0!x0?2!x2+4!x4?6!x6+… ? 函数接口定义:funcos(eps,x ),其中用户传入的参数为eps和x;函数funcos应返回用给定公式计算出来,保留小数4位。 ? 函数接口定义:
函数接口: funcos(eps,x ),返回cos(x)的值。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。 例如: /* 请在这里填写答案 */ eps=float(input()) x=float(input()) value=funcos(eps,x ) print(“cos({0}) = {1:.4f}”.format(x,value))
输入样例: 在这里给出一组输入。例如:
0.0001 -3.1
输出样例: 在这里给出相应的输出。例如:
cos(-3.1) = -0.9991
解答
def funcos(eps, x):
n = 1
a = 1
b = 1
flag = -1
ans = 1
while a/b >= eps:
n += 1
count = (n-1)*2
a = math.pow(x, count)
b = math.factorial(count)
if a/b >= eps:
ans = ans+flag*(a/b)
flag *= -1
return ans
第6章函数-6 缩写词 (20 分)
题目
缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。 ? 函数接口定义:
acronym(phrase); phrase是短语参数,返回短语的缩写词
裁判测试程序样例:
/* 请在这里填写答案 */ phrase=input() print(acronym(phrase))
输入样例:
central processing unit
输出样例:
CPU
解答
def acronym(phrase):
lst=list(phrase.split())
ans=""
for i in lst:
ans+=i[0].upper()
return ans
结语
文章仅作为学习笔记,记录从0到1的一个过程
希望对您有所帮助,如有错误欢迎小伙伴指正~
我是 海轰?(?ˊ?ˋ)?
如果您觉得写得可以的话,请点个赞吧
谢谢支持 ??
|