Heim  >  Artikel  >  Java  >  Beispiel für die Implementierung eines digitalen Schwarzen Lochs in Java

Beispiel für die Implementierung eines digitalen Schwarzen Lochs in Java

黄舟
黄舟Original
2017-09-14 10:12:171601Durchsuche

In diesem Artikel wird hauptsächlich die Implementierung des digitalen Black-Hole-Algorithmus-Spiels in der Java-Programmierung vorgestellt. Dazu sind Grundkenntnisse der Java-Programmierung wie Arrays, Scanner, if-Anweisungen usw. erforderlich. Freunde in Not können sich auf

beziehen Gegeben: Wenn wir für eine 4-stellige positive Ganzzahl mit unterschiedlichen Ziffern die 4 Zahlen zuerst in nicht aufsteigender Reihenfolge und dann in nicht absteigender Reihenfolge sortieren und dann die zweite Zahl von der ersten Zahl subtrahieren, erhalten wir eine neue Zahl . Wenn wir dies wiederholt tun, werden wir bald bei 6174 stehen bleiben, das als „digitale Schwarze Loch“ bekannt ist. Diese magische Zahl wird auch Kaprekar-Konstante genannt.

Zum Beispiel beginnen wir bei 6767, wir erhalten

7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
7641 - 1467 = 6174

Gegeben Sie eine beliebige vierstellige positive Ganzzahl. Schreiben Sie bitte ein Programm, um den Prozess des Erreichens des Schwarzen Lochs zu demonstrieren.

Eingabeformat:

Die Eingabe ergibt eine positive ganze Zahl N im Intervall (0, 10000).

Ausgabeformat:

Wenn die 4 Ziffern von N alle gleich sind, geben Sie andernfalls „N - N = 0000“ aus Geben Sie jeden Schritt der Berechnung in einer Zeile aus, bis 6174 als Differenz angezeigt wird. Das Ausgabeformat finden Sie im Beispiel. Beachten Sie, dass jede Zahl im 4-stelligen Format ausgegeben wird.

Eingabebeispiel 1:

6767

Ausgabebeispiel 1:

7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174

Eingabebeispiel 2:

2222

Ausgabebeispiel 2:

2222 - 2222 = 0000

Der spezifische Code lautet wie folgt:


import java.util.Arrays; 
import java.util.Scanner; 
public class Main { 
  public static void main(String args[]) { 
    Scanner sc = new Scanner(System.in); 
    int x = sc.nextInt(); 
    int ans = ds(x)-xs(x); 
    if(ans==0){ 
      System.out.printf("%04d - %04d = %04d\n",ds(x),xs(x),ans); 
    }else{ 
      int n ; 
      do{ 
        n = ds(x)-xs(x); 
        System.out.printf("%04d - %04d = %04d\n",ds(x),xs(x),n); 
        x = n; 
      }while(n!=6174); 
    } 
  } 
  public static int ds (int x){ 
    int[]a = new int[4]; 
    a[0] = x/1000; 
    a[1] = x/100%10; 
    a[2] = x/10%10; 
    a[3] = x%10; 
    Arrays.sort(a); 
    int sum = a[3]*1000+a[2]*100+a[1]*10+a[0]; 
    return sum; 
  } 
  public static int xs (int x){ 
    int[]a = new int[4]; 
    a[0] = x/1000; 
    a[1] = x/100%10; 
    a[2] = x/10%10; 
    a[3] = x%10; 
    Arrays.sort(a); 
    int sum = a[0]*1000+a[1]*100+a[2]*10+a[3]; 
    return sum; 
  } 
}

Die Ausgabe ist wie folgt:


4695
9654 - 4569 = 5085
8550 - 0558 = 7992
9972 - 2799 = 7173
7731 - 1377 = 6354
6543 - 3456 = 3087
8730 - 0378 = 8352
8532 - 2358 = 6174

Zusammenfassung

Das obige ist der detaillierte Inhalt vonBeispiel für die Implementierung eines digitalen Schwarzen Lochs in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn