Javaデジタルブラックホール桁が完全に同じではない4桁の正の整数が与えられた場合、最初に4つの数値を増加せずに並べ替え、次に減少せずに並べ替えてから、最初の数値から2番目の数値を引くと次のようになります。あたらしい番号。これを何度も繰り返してください、そして私たちはすぐに「数字」を持つのをやめます

タイトルの説明:
数字が完全に同じではない4桁の正の整数が与えられた場合、最初に4つの数値を増加せずに並べ替え、次に減少せずに並べ替えてから、最初の数値から2番目の数値を引くと、新しい数値が得られます。番号。これを何度も繰り返してください。すぐに「デジタルブラックホール」として知られる6174で停止します。これは、カプレカー定数としても知られるマジックナンバーです。
たとえば、6767から始めると、
7766-6677 = 1089
9810-0189 = 9621 9621-1269
= 8352 8532-2358
= 6174になり
ます。4桁の正の整数が与えられた場合、到達するプロセスを示すプログラムを作成してください。ブラックホール。

入力の説明:
入力は、区間(0、10000)に正の整数Nを与えます。

出力の説明:
Nの4桁がすべて等しい場合は、「N --N = 0000」を1行で出力します。それ以外の場合は、6174が差として表示されるまで、計算の各ステップを1行で出力します。出力形式の例を参照してください。 、各行間に空白行はありません。各番号は4桁の形式で出力されることに注意してください。

入力例:
6767

出力例:
7766-6677 = 1089
9810-0189 = 9621 9621-1269
= 8352 8532-2358
= 6174

Javaコード:

import java.util.*;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] a = new int[4];
        do {
    
    
            for (int i = 0; i < 4; i++) {
    
    
                a[i] = n % 10;
                n /= 10;
            }
            Arrays.sort(a);
            int h = 0;
            int l = 0;
            for (int i = 0; i < 4; i++) {
    
    
                h += a[i] * Math.pow(10,i);
                l += a[i] * Math.pow(10,3-i);
            }
            n = h - l;
            System.out.printf("%04d - %04d = %04d\n",h,l,n);
        }while (n != 6174);
        scanner.close();
    }
}

おすすめ

転載: blog.csdn.net/m0_46653805/article/details/123287712