【蓝桥杯训练】第二天1255、1258
1255
乐羊羊饮料厂正在举办一次促销优惠活动。
乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动。
那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。
输入
输入存在多组测试数据
每组测试数据输入一行包含一个正整数n(1<=n<=10000)
输出
对于每组数据输出一行,包含一个整数,表示实际得到的饮料数
样例输入 Copy
100
101
样例输出 Copy
149
151
注意
不允许暂借或赊账,及先要能-3,才能+1
算法
- 直接按照题目的逻辑出发,-3后判断n的正负
- n 为正,瓶盖数++,当前未使用瓶盖数++;
- n 为负,即退出
题解
def f(n):
res = n
while True:
n = n - 3
if n >= 0:
res = res + 1
n = n + 1
else:
break
print(res)
while True:
f(int(input()))
1258
有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。
某抽奖活动奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码。
主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
输出
请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
注意
此处利用了python扫描字符串,以及in关键字
算法
直接枚举,利用函数筛选
题解
结果:print('52488')
def f(data):
array = [i for i in str(data)]
if '4' in array:
return False
else:
return True
res = 0
for i in range(10**4,10**5):
if f(i):
res = res + 1
print(res)
纯粹于当下,执着于理想。