##蓝桥杯训练
1-购物单:
import os
import sys
import math
data = '''
**** 180.90 88折
**** 10.25 65折
**** 56.14 9折
**** 104.65 9折
**** 100.30 88折
**** 297.15 半价
**** 26.75 65折
**** 130.62 半价
**** 240.28 58折
**** 270.62 8折
**** 115.87 88折
**** 247.34 95折
**** 73.21 9折
**** 101.00 半价
**** 79.54 半价
**** 278.44 7折
**** 199.26 半价
**** 12.97 9折
**** 166.30 78折
**** 125.50 58折
**** 84.98 9折
**** 113.35 68折
**** 166.57 半价
**** 42.56 9折
**** 81.90 95折
**** 131.78 8折
**** 255.89 78折
**** 109.17 9折
**** 146.69 68折
**** 139.33 65折
**** 141.16 78折
**** 154.74 8折
**** 59.42 8折
**** 85.44 68折
**** 293.70 88折
**** 261.79 65折
**** 11.30 88折
**** 268.27 58折
**** 128.29 88折
**** 251.03 8折
**** 208.39 75折
**** 128.88 75折
**** 62.06 9折
**** 225.87 75折
**** 12.89 75折
**** 34.28 75折
**** 62.16 58折
**** 129.12 半价
**** 218.37 半价
**** 289.69 8折
'''
data = data.split()
sum = 0
for i in range(0,len(data),3):
price = float(data[i+1])
discount = data[i+2]
if len(discount) == 2:
if discount == "半价":
discount = 0.5
else:
discount = float(discount[:-1])*0.1
else:
discount = float(discount[:-1])*0.01
sum += price*discount
print(math.ceil(sum/100)*100)
思路:split(),用于分割字符串,可以用空格为标识分割购物单。
2-等差素数列
#lanqiqo
num=[]
for i in range(2,3000):
j=2
for j in range(2,i):
if(i%j==0):
break
else:
num.append(i)
for i in num:
for j in range(1, 1000):
u = 0
for k in range(1, 11):
if ((i + j * k) in num):
u = u + 1
if (u == 9):
print(j)
exit()
思路:(暴力解题)利用传统的for语句创造出3000以内的素数,再利用for语句检查10长度的等差素数数列