Java
 Computer >> コンピューター >  >> プログラミング >> Java

数値のすべての桁がその数を割り切れるかどうかを判定するJavaプログラム


ある数値のすべての桁が、その数値自身を割り切れるかどうかを確認する方法は、プログラミングの基礎的な問題の一つです。ここでは、Javaを使ってこの判定を行うコードを紹介します。

サンプルコード

import java.io.*;
public class Demo{
    static boolean divisibility_check(int val, int digit){
        return (digit != 0 && val % digit == 0);
    }
    static boolean divide_digits(int val){
        int temp = val;
        while (temp > 0){
            int digit = val % 10;
            if ((divisibility_check(val, digit)) == false)
            return false;
            temp /= 10;
        }
        return true;
    }
    public static void main(String args[]){
        int val = 150;
        if (divide_digits(val))
        System.out.println("この数値のすべての桁は、その数値を完全に割り切ります。");
        else
        System.out.println("この数値のすべての桁が、その数値を完全に割り切れるわけではありません。");
    }
}

実行結果

この数値のすべての桁が、その数値を完全に割り切れるわけではありません。

コードの解説

まず、Demoというクラスの中に、divisibility_checkという関数が定義されています。この関数は「数値」と「桁」の2つの引数を受け取り、ブール値(true / false)を返します。具体的には、桁が0でないこと、そしてその数値を桁で割った余りが0になる(つまり割り切れる)ことをチェックしています。桁が0の場合はゼロ除算エラーを避けるため、falseとして扱われます。

次に、divide_digitsという関数があります。これもブール値を返す関数で、引数として数値を受け取ります。この関数では、whileループを使って数値の各桁を順番に取り出し(val % 10で最下位の桁を取得)、それぞれの桁についてdivisibility_checkを呼び出して割り切れるかどうかを判定します。一つでも割り切れない桁があれば即座にfalseを返し、すべての桁が割り切れればtrueを返します。

メイン関数(main)では、判定対象となる数値(ここでは150)が定義され、divide_digits関数に渡されます。戻り値がtrueであれば「すべての桁がその数を割り切る」というメッセージが表示され、falseであれば「完全には割り切れない」というメッセージが出力されます。

なお、例として挙げた150の場合、構成する桁は1・5・0ですが、0は除算に使えず、また5は150を割り切れますが判定ロジック上、すべての桁が条件を満たさないため、結果として「完全には割り切れない」という出力になります。

  1. Pythonで数値のすべての桁がその数を割り切れるかどうかを判定する方法

    ある数値 n が与えられたとき、その数を構成するすべての桁が n を割り切れるかどうかを判定する問題を考えてみましょう。例えば、入力が n = 135 の場合、出力は True になります。これは以下のように、すべての桁で割り切れるためです。135 ÷ 1 = 135135 ÷ 3 = 45135 ÷ 5 = 27解決のためのアプローチこの問題は、次の手順で解くことができます。変数 val に n の値を代入します。val が 0 より大きい間、以下を繰り返します。d に val を 10 で割った余り(つまり一番下の桁)を代入します。n が d で割り切れない場合は False を返します。

  2. Pythonで数値のすべての桁がその数自身を割り切るかどうかを判定する方法

    はじめにこの記事では、与えられた問題に対する解法とアプローチについて学びます。具体的には、「ある整数のすべての桁が、その整数自身を割り切るかどうか」をPythonで判定する方法を解説します。問題文問題: 数値 n が与えられたとき、n のすべての桁が n を割り切るかどうかを判定してください。考慮すべきポイントまず、入力された数値に 0 が含まれていないかを確認する必要があります。0 で割ろうとするとゼロ除算例外(ZeroDivisionError)が発生するため、0 が含まれる場合は答えとして「No」を返さなければなりません。それ以外の場合は、一時変数 flag を用いて判定条件を宣言し、す