【Java入門】整数の桁数をカウントするプログラムの作り方
本記事では、Javaを使って整数の桁数をカウントする方法を解説します。桁数のカウントには、ループ処理とカウンター変数を組み合わせるのが基本です。対象の数値を10で繰り返し割り算し、その回数を数えることで、整数の桁数を求めることができます。
以下に具体的な例を示します。
入力
たとえば、次の数値が入力されたとします。
Number : 15161718
出力
期待される結果は以下のとおりです。
The result is : 8
アルゴリズム
ステップ1:処理を開始する ステップ2:整数型変数 my_count(カウンター)と my_input(入力値)を宣言する ステップ3:ユーザーから値を読み込む、または値をあらかじめ定義しておく ステップ4:forループを使い、入力値を10で割り続け、それ以上割れなくなるまで繰り返す。割り算のたびにカウンターを1ずつ増加させる ステップ5:カウンターの値を結果として表示する ステップ6:処理を終了する
例1:ユーザーからの入力を受け付ける場合
ここでは、Scannerクラスを使ってユーザーから数値を入力してもらい、その桁数を計算します。標準入力から値を読み込んで処理を行う、インタラクティブなプログラムです。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int my_count , my_input;
my_count = 0;
System.out.println("Required packages have been imported");
Scanner my_scanner = new Scanner(System.in);
System.out.println("A reader object has been defined ");
System.out.print("Enter the number : ");
my_input = my_scanner.nextInt();
for (; my_input != 0; my_input /= 10, ++my_count) {
}
System.out.println("The number of digits in the given input is: " + my_count);
}
}
実行結果
Required packages have been imported A reader object has been defined Enter the number : 15161718 The number of digits in the given input is : 8
ポイントは、初期化式を省略したfor文です。for (; my_input != 0; my_input /= 10, ++my_count) のように書くことで、「数値が0になるまで10で割り続け、その間カウンターを増やす」という処理を1行で簡潔に表現できます。
例2:値をあらかじめ定義しておく場合
ここでは、整数値があらかじめプログラム内で定義されており、その値を読み込んでコンソールに表示します。動作確認やテストの際に便利な書き方です。
public class Main {
public static void main(String[] args) {
int my_count = 0, my_input;
my_count = 0;
my_input = 15161718;
System.out.println("The number is defined as " +my_input);
for (; my_input != 0; my_input /= 10, ++my_count) {
}
System.out.println("The number of digits in the given input is: " + my_count);
}
}
実行結果
The number is defined as 15161718 The number of digits in the given input is: 8
補足:別の方法と注意点
同じ処理は、数値を文字列に変換して長さを取得することでも実現できます。
int digits = String.valueOf(Math.abs(my_input)).length();
また、以下の点にも注意しましょう。
- 負の数を扱う場合: マイナス記号は桁数として数えられないため、
Math.abs()で絶対値に変換してからカウントします。 - 入力が0の場合: ループが一度も実行されずカウントが0になりますが、実際の桁数は1桁です。「0なら1桁」と判定する処理を追加するとより正確になります。
このように、ループとカウンターを組み合わせれば、シンプルなコードで整数の桁数を求めることができます。ぜひ自分の環境でも試してみてください。
-
Javaでカウンタープログラムを実装する方法をわかりやすく解説
この記事では、JavaのSwingを使ってシンプルなカウンター(数を数える)アプリケーションを実装する方法を解説します。このプログラムでは、JLabelでカウント用のラベルを表示し、JTextFieldで現在のカウント値を保持し、JButtonで「追加(Add)」「削除(Remove)」「リセット(Reset)」の3つのボタンを作成します。 「Add」ボタンをクリックするとJTextField内のカウントが1ずつ増加し、「Remove」ボタンをクリックすると1ずつ減少します。さらに「Reset」ボタンをクリックすると、カウントは0にリセットされます。 実装例 import java.awt.*
-
Pythonでn桁のステップ数を数えるプログラムを解説
ステップ数とは何かある数値 n が与えられたとき、n桁のステップ数(Stepping Number)の個数を求める問題を考えてみましょう。ステップ数とは、隣り合うすべての桁同士の絶対差がちょうど1になる数のことです。例えば「123」は隣接する桁が 1→2→3 とすべて1ずつ増えているためステップ数ですが、「124」は 2→4 の差が2になるためステップ数ではありません。また、答えが非常に大きくなる可能性があるため、結果は 10^9 + 7 で割った余りとして返します。入出力の例入力が n = 2 の場合、出力は 17 になります。これは、2桁のステップ数が以下の17個存在するためです。12,