第六章
程序填空
5-1 输入两个正整数,输出它们的最大公约数与最小公倍数。
1 | def f(a,b): |
A % B 当A<B时,A%B=A
最小公倍数=两数乘积÷最大公因数
5-2 求组合数
1 | def fact(n): |
函数fact(n)
求出n
的阶乘,注意comb(n,m)
中n
与m
的大小关系
编程题
6-1 判断质数
实现一个函数,判断参数是否是质数,是的话返回True,否则返回False
注意:函数中要有异常处理,如果参数不是整数,返回False
裁判测试程序样例:
1 | /* 请在这里填写答案 */ |
输入样例1:ab
输出样例1:no
输入样例2:1.1
输出样例2:no
代码参考:
1 | def isPrime(num): |
6-2 找零钱
买单时,营业员要给用户找钱。营业员手里有10元、5元、1元(假设1元为最小单位)几种面额的钞票,其希望以
尽可能少(张数)的钞票将钱换给用户。比如,需要找给用户17元,那么其需要给用户1张10元,1张5元,2张1元。
而不是给用户17张1元或者3张5元与2张1元。
裁判测试程序样例:
1 | /* 请在这里填写答案 */ |
输入样例:
1 | 5 |
输出样例:
1 | 109 = 10*10 + 1*5 + 4*1 |
代码参考:
1 | def giveChange(money): |
6-3 缩写词
缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。
裁判测试程序样例:
1 | /* 请在这里填写答案 */ |
输入样例:central processing unit
输出样例:CPU
代码参考
1 | def acronym(phrase): |
6-4 斐波那契数列
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。 给出一个正整数a,要求菲波那契数列中第a个数是多少。 输入两个正整数a和b(1<=a<b<=100) 输出菲波那契数列的第a项到第b项。n是传入的参数。 n 的值不超过100的范围;函数须返回列表,列表的第i项存放数列的第i项。
裁判测试程序样例:
1 | /* 请在这里填写答案 */ |
输入样例:4 6
输出样例:3 5 8
代码参考:
因为函数要输出一个列表,但求斐波那契数列本身又需要递归,暂时没有想到在一个函数中实现的方法
1 | def fei(n): |
6-5 一元二次方程求根公式
输入一元二次方程ax^2+bx+c=0的系数a,b,c,输出方程根的相关信息.a、b 和 c 都是用户传入的整型参数。函数须返回元组,其中包含方程的实数根
裁判测试程序样例:
1 | /* 请在这里填写答案 */ |
输入样例:1 3 2
1 -4 4
1 4 5
输出样例:-1.0 -2.0
no root
代码参考:
1 | import math as m |
6-6 求素数和
使用函数prime(p)求素数和, 其中函数prime当用户传入参数p为素数时返回True,否则返回False. PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。
裁判测试程序样例:
1 | /* 请在这里填写答案 */ |
输入样例:1 10
输出样例:17
代码参考:
1 | def prime(p): |
6-7 货币双向兑换
本题要求实现一个人民币与美元的双向兑换函数change(money),可实现1美元=6.709人民币的双向兑换。输出兑换的结果保留2位小数。
裁判测试程序样例:
1 | / 请在这里填写答案 / |
输入样例:$1
¥1
输出样例:1美元 = 6.71美元
1人民币 = 0.15美元
代码参考:
1 | def change(money): |
6-8 计算薪资
某公司销售员底薪为5000,销售业绩与利润提成的关系如下表所示(计量单位:元)编写函数,计算员工月薪.
销售业绩(元) | 利润提成比例 |
---|---|
sales ≤ 10000 | 没有提成 |
10000 ≤ sales ≤ 20000 | 10% |
20000 ≤ sales ≤ 50000 | 15% |
50000 ≤ sales ≤ 100000 | 20% |
100000 < sales | 25% |
裁判测试程序样例:
输入样例:50800
35000
输出样例:15160.00
10250.00
代码参考:
1 | def bonus(sales): |