myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Zahlen Unterscheiden

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 14.03.13, 10:01   #1
ilikecookies
Anfänger
 
Registriert seit: Jan 2011
Beiträge: 10
Bedankt: 49
ilikecookies ist noch neu hier! | 0 Respekt Punkte
Standard Zahlen Unterscheiden

Kann mir jemand helfen bei der folgenden Aufgabe : Schreiben Sie ein Programm (GUI), welches entscheidet, ob eine eingegebene Zahl komplett aus unterschiedlichen Ziffern besteht.

Beispiel:
123 - Ja
1987 - Ja
2012 - Nein
234897 - Ja

Ich benutze Java.

Ich bräuchte nur den Quellcode für den jbutton.
ilikecookies ist offline   Mit Zitat antworten
Ungelesen 14.03.13, 11:20   #2
waldfee0071
Ist öfter hier
 
Benutzerbild von waldfee0071
 
Registriert seit: Nov 2009
Beiträge: 219
Bedankt: 189
waldfee0071 ist noch neu hier! | 0 Respekt Punkte
Standard

Was hast du denn schon versucht? Wenn du da nischt eigenes machst wird dir wohl kaum einer die Lösung geben.
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
waldfee0071 ist offline   Mit Zitat antworten
Ungelesen 14.03.13, 12:27   #3
Quabla
Mitglied
 
Registriert seit: Oct 2010
Beiträge: 296
Bedankt: 151
Quabla ist noch neu hier! | 0 Respekt Punkte
Standard

also ich kann zwar kein java sondern c++ aber ich würde die zahl in einen string oder ein char array umwandeln und dann die elemente durch iterieren und speichern, ob die jeweilige ziffer schon vorkam (10 bool variablen). sobald eine vorkommende ziffer schon auf true steht, kannst du false zurückgeben, wenn die schleife komplett durchläuft, gibst du true zurück. zusätzlich kannst du immer false zurückgeben, wenn eine zahl mehr als 10 stellen hat.
Quabla ist offline   Mit Zitat antworten
Ungelesen 14.03.13, 16:18   #4
baldurgarda
Anfänger
 
Registriert seit: Nov 2012
Beiträge: 27
Bedankt: 16
baldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punktebaldurgarda mag den Abfluss Flavour! | 58390 Respekt Punkte
Standard

int count = StringUtils.countMatches("1234", "1");

Jetzt musst Dich nur noch a' bisserl anstrengen
baldurgarda ist offline   Mit Zitat antworten
Ungelesen 14.03.13, 18:53   #5
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

@KanuKkidz
Man muss sich ersteinmal ein Algorithmisches Grundverständnis aneignen, jemanden wegen soetwas zu raten das Studienfach zu wechseln hat weder Hand noch Fuß.

Außerdem werden seinen Kommilitonen von ihm nicht augehalten, egal wie schlecht er ist.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 14.03.13, 20:04   #6
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

Also ich würde alles in ein Array packen und dann einfach in einer Doppelschleife jedes Element mit mit jedem anderen vergleichen. Das ergibt dann n-1 Durchläufe, wobei jeder Durchlauf n-1 - [Nr. des aktuellen Durchlaufs] Vergleiche benötigt. Das wäre also in Summe n(n-1)/2 ... bei den Ziffern von 0 bis 9 also 45 Durchläufe ...

Pseudocode:
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 14.03.13, 20:54   #7
NetWebs
Banned
 
Registriert seit: Aug 2012
Beiträge: 223
Bedankt: 68
NetWebs ist noch neu hier! | 0 Respekt Punkte
Standard

@slahn

Das wär die brutal schlechteste Lösung. 45 Durchläufe, wenn man maximal 9 Stellen vergleichen muss?

Richtig:
Durchlauf alle Ziffern, zähle die jeweilige Ziffer auf. Abbruchbedingung: eine Aufzählung ist größer als 1.
Max. Durchlauf = 9
NetWebs ist offline   Mit Zitat antworten
Ungelesen 14.03.13, 21:25   #8
ilikecookies
Anfänger
 
Registriert seit: Jan 2011
Beiträge: 10
Bedankt: 49
ilikecookies ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von waldfee0071 Beitrag anzeigen
Was hast du denn schon versucht? Wenn du da nischt eigenes machst wird dir wohl kaum einer die Lösung geben.
Klar hab ich es versucht, habs mit equals versucht, jedoch scheitert mein kleines "programm", die erste Zahl ist komischer weise immer true doch die darauf folgenden sind dann false.
Und noch was ich bin noch ein stück entfernt vom Studium, bin noch in der Oberschule.
ilikecookies ist offline   Mit Zitat antworten
Ungelesen 14.03.13, 21:56   #9
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Ich habe mal schnell eine Funktion geschrieben bevor es hier wieder ausartet:
Code:
	static boolean allDigitsOfNumberAreUnique(int number) {
		int cnt[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
		
		String str = String.valueOf(number);
		
		int digit;
		for (int i = 0; i < str.length(); i++) {
			digit = (int) (str.charAt(i) - '0');
			if (cnt[digit] > 0) return false;
			cnt[digit]++;		
		}
		
		return true;
	}
Aufruf:
Code:
		int number = 12345;
		
		if (allDigitsOfNumberAreUnique(number))
			System.out.println("ja");
		else
			System.out.println("nein");
@ilikecookies
Poste bitte nächstes mal deinen Versuch mit der Fragestellung, dann wird dir auch eher geholfen.
Von Copy&Paste hat hier niemand etwas.
Your_Conscience ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.


Sitemap

().