あけましておめでとうございます
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年もよろしくお願いします。

コメント