タイトルの説明:
数字が完全に同じではない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();
}
}