【藍橋杯訓練】次日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)
相關文章
相關標籤/搜索