文章目錄
- 題目
- 程式代碼
題目
| 試題編號: | 201912-1 |
| 試題名稱: | 報數 |
| 時間限制: | 1.0s |
| 記憶體限制: | 512.0MB |
題目描述
甲乙丙丁決定玩一個報數的游戲來打發時間,游戲規則為四個人從1開始輪流進行報數,但如果需要報出的數是 7 的倍數或含有數字 7 則直接跳過,
此外大家約定,在總共報出了n個數后(不計入被跳過的數)游戲結束,現在需要你來幫忙統計,游戲程序中每個人各自跳過了幾次,
輸入格式
從標準輸入讀入資料,
輸入僅一行,包含一個正整數 n,表示報出了多少個數后游戲結束,
輸出格式
輸出到標準輸出,
輸出共四行,每行一個整數,依次表示甲乙丙丁四人在游戲程序中跳過的次數,
樣例1輸入
20
樣例1 輸出
2
1
1
0
樣例1 解釋
報數程序為∶
甲∶1,乙∶2,丙∶3,丁∶ 4
甲∶ 5,乙∶ 6,丙∶跳過,丁∶ 8
甲∶9,乙∶10,丙∶11,丁∶ 12
甲∶13,乙∶ 跳過,丙∶ 15,丁∶16
甲∶ 跳過,乙∶ 18,丙∶19,丁∶20
甲∶ 跳過,乙∶ 22,丙∶ 23,丁∶ 24
在丁報出24后,四個人總計報出了20個數,游戲結束,
樣例 2 輸入
66
樣例 2 輸出
7
5
11
5
子任務
測驗點1、2、3、4和5,保證n≤102;
測驗點6、7、8、9和10,保證n≤66,
程式代碼
# 輸入數字
n = int(input())
# 甲乙丙丁挑過的次數
jump = [0,0,0,0]
# 當前數字
number = 0
# 報數的次數
count = 0
# 判斷是否到達報數次數
while count != n + 1:
# 判斷是否為7的倍數或時候含7 若是則對應同學跳過次數增加 并恢復報數次數
if number % 7 == 0 and number != 0:
jump[number % 4 - 1] +=1
count -= 1
elif '7' in str(number):
jump[number % 4 - 1] +=1
count -= 1
# 當前數字和報數次數自增
number += 1
count += 1
# 輸出跳過次數
for i in range(4):
print(jump[i])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/257348.html
標籤:其他
上一篇:AcWing-680.減繩子.
下一篇:淺談 可獲得的最大點數 問題
