Happy New Year 2026

プログラミング

あけましておめでとうございます
2026年もプログラミングを楽しんでいきましょう!

お題

それではさっそくプログラミングお題をやってみましょう。
2026という数字はすべての桁が偶数で構成されています。
ですのでキーボードから自然数(1~10000000) を入力し、そのすべての位が偶数ならばok
そうでなければngと出力するプログラムを作成してみましょう。

実行例

[実行例1]

自然数を入力>>2026
ok

[実行例2]

自然数を入力>>1
ng

[実行例3]

自然数を入力>>24462804
ok

解答例

[Java]

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("自然数を入力>>");
		int n = sc.nextInt();
		while(n>0) {
			if(n % 2 != 0) {
				System.out.println("ng");
				return;
			}
			n /= 10;
		}
		System.out.println("ok");
		sc.close();
	}

[ポイント]
n%2で最後の桁が偶数かどうかを判定->偶数じゃなかったらngと出力して終了
偶数だったら、全体を10で割った商を求めることで最後の桁を消去する
この作業を繰り返し、もしすべての桁が偶数だった場合にokとする出力です。
2026 -> 6は偶数
202 -> 2は偶数
20 -> 0は偶数
2 -> 2は偶数
0 -> whileループを抜ける
okと出力

21
1 -> 1は奇数
ngと出力して終了

[Python]

n = int(input("数値を入力>>"))
while n > 0:
    if n % 2 != 0:
        print('ng')
        break
    n //= 10
else:
    print('ok')

[ポイント]
考え方はJava版と同じ、ただPythonには
while~else
があるのでそれを利用している。whileにelseをつけることでbreakせずにループがまわりきったときの処理を書くことができる。
また、10で割ったときの商は//演算子を使うので注意
n = 22 // 10
nに2が代入される

Python でコメントが # なのは、// がすでに「整数除算」という意味を持っているから

最後に

記事を作成していて、そういえばPythonのコメントが//でなく#なのは整数除算演算子とかぶらないようにするためなのか!と今更ながら気づきました(笑
ということで2026年もよろしくお願いします。

コメント

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