CCF-201912-1-報數

報數 1 2 3 4 5 6 7* 8 9 10 11 12 13 14* 15 16 17* 18
id 1 2 3 4 1 2 3* 4 1 2 3 4 1 2* 3 4 1* 2

如上
1234指代甲乙丙丁
大小爲4的數組 cnts 用來記錄甲乙丙丁跳過的次數,題目n爲總共可以報的次數(不包括跳過的數,因爲跳過了,沒報出來),每報一次 n-1。
死循環報數,遇到7的倍數和帶7的數跳過不報,所以n不變。報數號碼除與4求餘得,到對應的人,對應數組下標(我是從0開始做下標,最後的餘數減一了),次數加1。其餘報數號碼要報出來,n-1,直到n==0退出循環。

python代碼:

n = int(input())
cnts = [0, 0, 0, 0]
i = 1
while n:
    if i % 7 == 0 or '7' in str(i):
        cnts[i % 4 - 1] += 1
    else:
        n -= 1
    i += 1
for cnt in cnts:
    print(cnt)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章