- **6-1 jmu-python-组合数据类型-1.计算坐标点欧氏距离 (10 分)**
- **6-2 jmu-python-函数-找钱 (10 分)**
- **6-3 jmu-java&python-统计字符个数 (10 分)**
- **6-4 缩写词 (10 分)**
读取若干个点,每个点放入元组。并将所有点的点信息、点的类型、点与原点的距离打印出来。
函数接口定义:
readPoint() #从一行以,分隔的数中读取坐标,放入元组并返回
distance(point) #计算point与原点的距离并返回,要math库中的函数
裁判测试程序样例:
/* 请在这里填写答案 */
n = int(input())
for i in range(n):
p = readPoint()
print('Point = {}, type = {}, distance = {:.3f}'.format(p,type(p),distance(p)))
输入格式:
输入n,代表底下要输入n行点坐标。坐标全部为整数。
点坐标x,y,z以,
分隔。坐标全部为整数。
**注意:**坐标以,
分隔,相应位置可能无字符或者包含多个空格字符,读入时按照0进行处理。
输出格式:
见输出样例
输入样例:
5
1,1,1
,,
2,,1
3,1,3
5,,
输出样例:
Point = (1, 1, 1), type = , distance = 1.732
Point = (0, 0, 0), type = , distance = 0.000
Point = (2, 0, 1), type = , distance = 2.236
Point = (3, 1, 3), type = , distance = 4.359
Point = (5, 0, 0), type = , distance = 5.000
答案
def readPoint(): #从一行以,分隔的数中读取坐标,放入元组并返回
tuples = []
coordinates = input().split(',')
for i in coordinates:
# 若逗号间无数字则判定为0
if i == '':
tuples.append(0)
else:
tuples.append(int(i))
return tuple(tuples)
def distance(point): #计算point与原点的距离并返回,要math库中的函数
# 用直角三角方程计算距离
Sum = 0
for i in point:
Sum += i ** 2
return Sum ** 0.5
6-2 jmu-python-函数-找钱 (10 分)
买单时,营业员要给用户找钱。营业员手里有10元、5元、1元(假设1元为最小单位)几种面额的钞票,其希望以
尽可能少(张数)的钞票将钱换给用户。比如,需要找给用户17元,那么其需要给用户1张10元,1张5元,2张1元。
而不是给用户17张1元或者3张5元与2张1元。
函数接口定义:
giveChange(money) #money为要找的钱。经过计算,应按格式"要找的钱 = x*10 + y*5 + z*1"输出。
裁判测试程序样例:
/* 请在这里填写答案 */
n = int(input())
for i in range(n):
giveChange(int(input()))
输入样例:
5
109
17
10
3
0
输出样例:
109 = 10*10 + 1*5 + 4*1
17 = 1*10 + 1*5 + 2*1
10 = 1*10 + 0*5 + 0*1
3 = 0*10 + 0*5 + 3*1
0 = 0*10 + 0*5 + 0*1
答案
def giveChange(money): #money为要找的钱。经过计算,应按格式"要找的钱 = x*10 + y*5 + z*1"输出。
# Eg:15/10 = 1.5 int型省略了小数不需要用Math
ten = int(money/10)
# Eg:17%10 = 7 7/5=1.4 int型省略了小数
five = int((money%10)/5)
# Eg:17%10 = 7 7%5 = 2 int型省略了小数
one = (money%10)%5
print(f"{money} = {ten}*10 + {five}*5 + {one}*1")
6-3 jmu-java&python-统计字符个数 (10 分)
编写程序统计1行字符串中:
- 不同字符的个数。
- 每种字符出现的次数。
函数接口定义:
Freq(line)
**函数功能:**该函数统计不同字符出现的次数,并最后按照字符升序进行输出。输出格式见输出样例。
**参数说明:**line为需要统计的字符串。
裁判测试程序样例:
/* 请在这里填写答案 */
line = input()
Freq(line)
输入样例:
abc 123 adex!!!
输出样例:
11
= 2
! = 3
1 = 1
2 = 1
3 = 1
a = 2
b = 1
c = 1
d = 1
e = 1
x = 1
答案
def Freq(line):
result={}
for i in line:
if i in result:
result[i]+=1
else:
result[i]=1
result=list(result.items())
print(len(result))
# 这里还是用sort好一点,程序判断的sorted好像导致超时,也有可能是下面的循环导致的超时,其实运行时间并没有太大变化
result.sort(key=lambda item:item[0])
for i in range(len(result)):
words,num = result[i]
print(f"{words} = {num}")
6-4 缩写词 (10 分)
缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。
函数接口定义:
acronym(phrase);
phrase是短语参数,返回短语的缩写词
裁判测试程序样例:
/* 请在这里填写答案 */
phrase=input()
print(acronym(phrase))
输入样例:
central processing unit
输出样例:
CPU
答案
# 思路:输入语句分出单词,创建一个字符串存储单词首字母,然后用upper()转为大写
def acronym(phrase): #phrase是短语参数,返回短语的缩写词
lists=''
newPhrase=phrase.split()
for i in newPhrase:
lists += i[0]
lists = lists.upper()
return lists
南陵水面漫悠悠,风紧云轻欲变秋。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)