ccf 201803-1 跳一跳(Python實現)


一、原題

 

問題描述

試題編號:

201803-1

試題名稱:

跳一跳

時間限制:

1.0s

內存限制:

256.0MB

問題描述:

問題描述

  近來,跳一跳這款小游戲風靡全國,受到不少玩家的喜愛。
  簡化后的跳一跳規則如下:玩家每次從當前方塊跳到下一個方塊,如果沒有跳到下一個方塊上則游戲結束。
  如果跳到了方塊上,但沒有跳到方塊的中心則獲得1分;跳到方塊中心時,若上一次的得分為1分或這是本局游戲的第一次跳躍則此次得分為2分,否則此次得分比上一次得分多兩分(即連續跳到方塊中心時,總得分將+2+4+6+8...)。
  現在給出一個人跳一跳的全過程,請你求出他本局游戲的得分(按照題目描述的規則)。

輸入格式

  輸入包含多個數字,用空格分隔,每個數字都是120之一,1表示此次跳躍跳到了方塊上但是沒有跳到中心,2表示此次跳躍跳到了方塊上並且跳到了方塊中心,0表示此次跳躍沒有跳到方塊上(此時游戲結束)。

輸出格式

  輸出一個整數,為本局游戲的得分(在本題的規則下)。

樣例輸入

1 1 2 2 2 1 1 2 2 0

樣例輸出

22

數據規模和約定

  對於所有評測用例,輸入的數字不超過30個,保證0正好出現一次且為最后一個數字。

 

二、題解

一般第一題第二題比較簡單。這個題利用列表即可。

重點是對當跳到中心計數為2,然后對連續幾次需要計數。

 

三、代碼

Python實現:

以下時100分答案:
sore,boostsore  = 0,2
nums=list(input().split())
for i in nums:
    if i == '1':
        sore += 1
        boostsore = 2
    elif i == '2':
        sore = sore + boostsore
        boostsore += 2
    elif i == '0':
        break
print(sore)

可以參考:

以下時90分答案:
li = input().split()
sum=0
a = range(len(li))
for i in a:
    if li[i] == '1':
        sum += 1
        i += 1
    elif li[i] == '2':
        n = 2
        if i == 1:
            pass
        else:
            j = i-1
            while j>=0:
                if li[j] == '2':
                    n += 2
                    j -= 1
                else:
                    break
        sum += n
        i += 1
print(sum)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM