2022年おめでとうございます!

python

2022年おめでとうございます!
今年もジョイタスネットをよろしくお願いします。

2022年を見てなんか感じませんか?

2022という数字を見るとなんか感じません?プログラミングのやりすぎでしょうか、こういう数字を見るとピピンと体が反応してしまいます。
ということで、この2022にちなんだお題をいくつかやってみましょう!

2022は2種類の数字で構成されている

まず思いつくことは2022という数字は2種類の数字で構成されているということです。
今後このように2種類の数字のみで構成される西暦はいつ現れるでしょうか?
これを求める処理を実行例を参考に作成してみましょう。

実行例

2022より後で2種類の数字で構成される西暦を探します
いくつ探しますか>>5
[2111, 2112, 2121, 2122, 2200]

解答例(python)

print('2022より後で2種類の数字で構成される西暦を探します')
n = int(input('いくつ探しますか>>'))
result=[0]*n
i=0
year=2022
while i<n:
    year+=1
    if len(set(str(year))) == 2:
        result[i]=year
        i+=1
print(result)

ポイント解説

設問に種類という単語が出てきたらsetの出番だ。
ここでは西暦を文字列に変換しそれをset関数に渡している。
こうすると同じ文字は削除され、それのlenを取れば何種類かがわかる
というものだ。
今回は2種類だった西暦をリストに追加している。

2022は一つの数字が3回登場している

先ほどは2種類で求めましたが、この数字は1つの数字が3回登場しているとも捉えることができます。では同様にこれを求める処理も作成してみましょう。

実行例

2022より後に1つの数字が3回登場する西暦を探します
いくつ探しますか>5
[2111, 2122, 2202, 2212, 2220]

解答例

print('2022より後に1つの数字が3回登場する西暦を探します')
n = int(input('いくつ探しますか>'))
result=[0]*n
i=0
year=2022
while i<n:
    year+=1;
    sy=str(year)
    for c in sy:
        if sy.count(c) == 3 :
            result[i]=year
            i+=1
            break
print(result)

ポイント解説

ここでは

文字列.count('特定文字列')

を使っている。これは文字列中に何回、特定文字列が登場するかを教えてくれる関数だ。3個同じ数値を含んでいる西暦を探せば良い。

行動!行動!行動!

2022年、一発目のお題はいかがでしたでしょうか?
今回やったどちらのお題も次に現れるのは2111年と89年後です。
ほとんどの人にとって生きているのは難しいのではないでしょうか?
ということは2022は生存中に体験できる最後の2種類年号。。。
行動!行動!行動!で実り豊かな年にしていきましょう!

python
スポンサーリンク
シェアする
mjpurinをフォローする
ジョイタスネット

コメント

タイトルとURLをコピーしました