Ziffern auf Existenz überprüfen

_So3r3n

Mitglied
Hi Leute,

ich habe ein kleines Problem und hoffe ihr könntet mir dabei ein wenig unter die Arme greifen, und zwar:

Ich möchte mit einer while-Schleife viele Zahlen erzeugen, so weit so gut, das klappt auch. Jetzt möchte ich aber schauen ob es diese Zahl die erzeugt wird, bereit vorher schon einmal erzeugt wurde.

Ich berechne zur Zeit:

i = 1000;

q = i * i;

i++;

Dann nehme ich die letzten drei Ziffern und möchte nun schauen, ob diese bereits vorher ausgerechnet wurden. Vielleicht kann mir ja jemand helfen. Wäre sehr schön.

Danke bereits im voraus

Euer _So3r3n
 
Die letzten drei Ziffern bekommst Du mit Modulo 1000
Code:
%1000
. Diese kannst Du in eine List (z.B ArrayList) verwalten und bei jeder neuen Zahl prüfen, ob diese bereits in der List steckt.
 
Kannst du bitte mal den kompletten Quellcode in

Java:
so ein

Fenster posten?

Ich verstehe anhand deines kurzen Beispiels nicht, wie der genaue ErzeugungsAlgorithmus der generierten Zahlen abläuft.
 
Hier der Quellcode

Java:
import java.util.ArrayList;


public class Zufall {

	public static void main (String[] a) {

		int i = 1000;
		int q;

		ArrayList liste = new ArrayList();


		while (i <=9999) {

			q = i * i;

			i++;

			liste.add(q);
			
		}

liste.size();

		System.out.println (liste.size());

		

		



	}


}

Ich muss jetzt noch schauen, dass ich bei "q" die mittleren 4 Ziffern nehmen kann und vergleichen ob diese bereits in der Liste sind.
 
Ich weiß zwar nicht, in wie weit dir das helfen soll, bereits vorhandene Zahlen auszusortieren aber du kannst zum Beispiel die Zahl zu einem String casten, die enstrpechenden Stellen rausschneiden und wieder zu einem int casten.

Oder du arbeitest mit Modulo, wie oben Beschrieben.

Um zu überprüfen, ob eine Zahl bereits vorhanden ist musst du wohl oder übel die gesamte Liste durchlaufen... oder du schreibst eine Funktion, die ein wiederholtes Aufrufen einer Zahl unmöglich macht, um sicher zu gehen, dass du keine doppelten bekommst... da geht bestimmt was mit System.getCurrentmillis...
 
ok, läuft jetzt auch, weiß nur noch nicht wie ich eine 0 vor die 7-stelligen bekomme.

Entweder über Formatter oder oldschool über

Java:
	int i = 123;
	String strResult = "00000000" + String.valueOf(i);
	strResult = strResult.substring(strResult.length() - 8);
	System.out.println(strResult);

(für einen 8stelligen String der rechtsbündig mit vornullen aufgefüllt werden soll)

Bernd
 

Zurück
Oben