2016-04-10 9 views
-1

Ich versuche, das Lychrel Nummer Programm zu machen. aber ich kann es nicht schaffen. Kriterien ist das, listet die Lychrel-Nummer, die unten in 10000 ist, Lychrel-Nummer Überprüfung Iteration in begrenzt. Ich habe es als 30 gesetzt. Aber ich habe die Lösung noch nicht. Nummer sollte aufgeführt werden, wenn die Überprüfung bis zu 30 Iterationen abgeschlossen ist. Ich habe die Lösungen nicht bekommen. Hilf mir.Lychrel Nummer Programm Fehler

public class LychrelNumber { 

static final int MAX_NUMBER = 10000; 
static final int MAX_ITERATION = 30; 
int iterationCount = 0; 

void listTheLychrelNymber() throws Exception { 
    long i = 0; 

    long temp; 
    for (int j = 0; j < MAX_NUMBER; j++) { 
     iterationCount = 0; 
     temp = j; 
     for (i = 0; i < MAX_ITERATION; i++) { 
      long first = temp; 
      long second = reverseTheNumber(temp); 
      long third = first + second; 
      long fourth = reverseTheNumber(third); 
      if (third == fourth) { 
       break; 
      } else { 
       temp = third; 
       if (i == MAX_ITERATION) { 
        System.out.println("Lychrel Numbers are :" + j); 
       } 
      } 
     } 
    } 


} 

long reverseTheNumber(long n) { 
    long reverse = 0; 
    while (n != 0) { 
     reverse = reverse * 10; 
     reverse = reverse + n % 10; 
     n = n/10; 
    } 
    return reverse; 

} 

public static void main(String[] args) { 
    try { 
     LychrelNumber lychrelNumber = new LychrelNumber(); 
     lychrelNumber.listTheLychrelNymber(); 
    } catch (Exception e) { 
    } 
} 

}

es ist erfolgreich aufzubauen. aber ich habe die Ausgabe nicht bekommen.

+0

downvoter fügen Sie bitte den Kommentar selbst zu verbessern. – Noorul

Antwort

0

Ich habe die Lösung.

if (i == (MAX_ITERATION-1)) { 
    System.out.println("Lychrel Numbers are:" + j); 
} 

hier machte ich den Fehler in Zustand prüfen ..

0

Sehen Sie sich Ihre Schleife von i (I verkürzt den Code ein bisschen)

for (i = 0; i < MAX_ITERATION; i++) { 
    if (i == MAX_ITERATION) { 
     System.out.println("Lychrel Numbers are :" + j); 
    } 
} 

Wie Sie sehen, Sie aufhören looping, wenn ich MAX_ITERATION erreicht aber nur die Lychrel Nummer in der Schleife drucken, wenn i == MAX_ITERATION (was natürlich niemals passieren wird).

+0

Nein. Sie sind falsch. Ich habe meine Lösung aktualisiert. Danke trotzdem. Jetzt bearbeitet – Noorul