質問の駐車スペースのクイズをPythonで解いてみました。(^_^;
駐車スペースに、1から順に番号をつけます。ただし、4または13を含む数字は除外します。4*、13*なども除外します。1*3のように、13の間に4以外の数字が入る場合は除外しません。このとき、
(1)1000番まで番号をつけるには、最低何台分のスペースが必要ですか。
(2)1000台ぶんの駐車スペースに番号をつけたら、一番大きな数字は何ですか。
結果は上の方と同じです。o(^-^)o
● ParkingSpc1.py
# coding: UTF-8 # ParkingSpc1.py from time import time def main(): tm=time() # Timer Start cnt = num = 0 while cnt< 1000: num+=1 if '4' in str(num): continue if '13' in str(num): continue cnt+=1 if num==1000: print('(1) %d'%cnt) print('(2) %d'%num) print("Runtime : %.3f [sec]"%(time()-tm)) # Timer Stop & Disp if __name__ == '__main__': main()
●実行結果
(1) 711 (2) 1576 Runtime : 0.000 [sec]
P.S.
皆さん、正規表現でやっているようなので、正規表現でやるとすれば、reをimportして、2つのif文を次の1つのif文で書き換えればいいです。
import re ... if re.search(r'4|13',str(num)): continue
P.S.
質問の回答のとこのPythonプログラムを2でも3でも動くように修正しました。(^_^;
# coding: UTF-8 # ParkingSpc2.py import re def main(): cnt = num = 0 while cnt< 1000: num+=1 if re.search(r'4|13',str(num)): continue cnt+=1 if num==1000: print('(1)',cnt) print('(2)',num) if __name__ == '__main__': main()