【蓝桥杯训练】次日125五、1258

1255

[蓝桥杯2015初赛]饮料换购php

乐羊羊饮料厂正在举办一次促销优惠活动。
乐羊羊C型饮料,凭3个瓶盖能够再换一瓶C型饮料,而且能够一直循环下去(但不容许暂借或赊帐)。
请你计算一下,若是小明不浪费瓶盖,尽可能地参加活动。
那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。
输入
输入存在多组测试数据
每组测试数据输入一行包含一个正整数n(1<=n<=10000)
输出
对于每组数据输出一行,包含一个整数,表示实际获得的饮料数
样例输入 Copy
100
101
样例输出 Copy
149
151python

注意

不容许暂借或赊帐,及先要能-3,才能+1算法

算法

  1. 直接按照题目的逻辑出发,-3后判断n的正负
  2. n 为正,瓶盖数++,当前未使用瓶盖数++;
  3. 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

[蓝桥杯2015初赛]奖券数目函数

有些人很迷信数字,好比带“4”的数字,认为和“死”谐音,就以为不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。
某抽奖活动奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码。
主办单位请你计算一下,若是任何两张奖券不重号,最多可发出奖券多少张。
输出
请提交该数字(一个整数),不要写任何多余的内容或说明性文字。测试

注意

此处利用了python扫描字符串,以及in关键字code

算法

直接枚举,利用函数筛选字符串

题解

结果:print('52488')get

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)
相关文章
相关标签/搜索