1.矿泉水
import math
x,a,b=5000,5,100
per_a=a/500 # 求单价
per_b=b/1500 # 求单价
ans=0
if per_a<=per_b: # 小瓶单价便宜,全买小瓶
ans=int(math.ceil(x/500)*a)
else: # 大瓶单价便宜
ans=(x//1500)*b # 先买够整数瓶
res=x%1500
ans+=min(math.ceil(res/500)*a,b) # 比较剩余部分,大瓶和小瓶哪个更划算
print(ans)
2.立方和
# 打表,先把立方能表示的都算出来
# 数据范围1,000,000,000,所以到1000就可以
num=int(input())
a=set()
for i in range(1,1000):
for j in range(i,1000):
a.add(pow(i,3)+pow(j,3))
if num in a:
print('Yes')
else:
print('No')
3.求环的个数
def change(nums):
n=len(nums)
cycles=0
total=set()
for i in range(1,n+1):
if i not in total:
a=set()
while(i not in a): # 判定环
total.add(i)
a.add(i)
i=nums[i-1]
cycles+=1
return cycles
ans=change(nums)
if ans==1: # 说明只有一个环,不需要修改元素
print(0)
else: # 多于一个环,有几个环就修改几个元素
print(ans)
#深信服笔试题#