Python筆記-CSP 201912-1 報數
前言
此題的解決方法不唯一,你可以參考一下對應的解題思路,建議不要直接複製黏貼程式碼。
一、題目
二、演算法思路
大致的題意是說從1開始計數,一遇到7的倍數或數字中含有7時,就跳過這個數,直到成功計數的個數達到n個為止。而我們需要統計輸出的是玩這個計數遊戲的甲乙丙丁四人遇到“跳過數”的次數,並輸出四人的結果。
我使用的儲存結構是字典,以四個人的中文名稱作為對應的鍵,並初始化值為0,並定義了兩個變數,一個是當前報的數,一個是當前報數的人名。先建立了一個函式,用於判斷一個數是否含有7或為7的倍數,python中可以使用in來判斷一個字元存在於另一個字串中,所以可以直接使用
if ’7’ in str(number)
來判斷轉換為字串後的number中是否含有數字7。
使用死迴圈進行計數,當成功計數達到n個就break出去,符合“跳過數”時就統一下,因為遇到“跳過數”時不能算到成功計數個數裡,所以需要自減運算與後面的自加運算進行抵消。之後就是將當前玩家跳到下一玩家,當前數加1,成功計數個數加1。
三、程式碼
# coding=utf-8
#作者:小狐狸
#題目:報數
def check_seven(number):
'''
檢視輸入的數是否含有7或7的倍數,number為int型別
是返回True,否返回False
'''
if number%7==0:
return True
if '7' in str(number):
return True
return False
if __name__ == "__main__":
n = int(input())
## print(n)
dic = {}
dic['甲'] = 0
dic['乙'] = 0
dic['丙'] = 0
dic['丁'] = 0
now = 1 #當前的數
now_player = '甲' #當前報數的玩家
number = 0 #已報的個數
while True:
if number==n: #報了n次結束
break
if check_seven(now): #若當前玩家的數符合跳過數的條件時
dic[now_player] += 1
number -= 1 #與之後的次數累加消除
#跳到下一玩家
if now_player == '甲':
now_player = '乙'
## print('甲',now)
elif now_player == '乙':
now_player = '丙'
## print('乙',now)
elif now_player == '丙':
now_player = '丁'
## print('丙',now)
elif now_player == '丁':
now_player = '甲'
## print('丁',now)
now += 1
number += 1
print(dic['甲'])
print(dic['乙'])
print(dic['丙'])
print(dic['丁'])
相關文章
- CSP認證 201912-1 報數(模擬)
- 201912-1 報數
- Python學習筆記 - 變數Python筆記變數
- Python學習筆記 - 字串,數字Python筆記字串
- 【廖雪峰python入門筆記】變數Python筆記變數
- Python數模筆記-Sklearn(1) 介紹Python筆記
- CSP遊記
- python筆記Python筆記
- Python 學習筆記-2-1-變數Python筆記變數
- Python數模筆記-Sklearn(5)支援向量機Python筆記
- Python數模筆記-(1)NetworkX 圖的操作Python筆記
- Python數模筆記-NetworkX(2)最短路徑Python筆記
- Python學習筆記|Python之內建變數__name__Python筆記變數
- 【廖雪峰python入門筆記】整數和浮點數Python筆記
- [筆記](更新中)CSP-S 2024 查漏補缺筆記
- 2023 國慶CSP-J刷題營筆記整合筆記
- 【筆記】基於Python的數字影象處理筆記Python
- Python 基礎筆記——變數的操作方法Python筆記變數
- Python數模筆記-Sklearn(4)線性迴歸Python筆記
- Python數模筆記-Sklearn(3)主成分分析Python筆記
- CSP 2023 遊記
- CSP 2024 遊記
- 2024 CSP遊記
- 2024 CSP 遊記
- python筆記(3)Python筆記
- python筆記3Python筆記
- python openpyxl筆記Python筆記
- python筆記-5Python筆記
- Python筆記5Python筆記
- 數分筆記筆記
- 數學筆記筆記
- Python學習筆記(2)慎重使用全域性變數Python筆記變數
- Python3學習筆記3,變數、運算子Python筆記變數
- Python數模筆記-NetworkX(3)條件最短路徑Python筆記
- Python數模筆記-Sklearn(2)樣本聚類分析Python筆記聚類
- Content Security Policy 學習筆記之三:CSP 指令的使用方式筆記
- CSP2023 遊記
- CSP2020 遊記