myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Go Back   myGully.com > Computer & Technik > Programmierung
Reload this Page

Zahlen Unterscheiden

Willkommen

myGully

Links

Forum

 
Reply
Thread Tools Display Modes
Unread 14.03.13, 10:01   #1
ilikecookies
Anfänger
 
Join Date: Jan 2011
Posts: 10
Bedankt: 49
ilikecookies ist noch neu hier! | 0 Respekt Punkte
Default 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 is offline   Reply With Quote
Unread 14.03.13, 11:20   #2
waldfee0071
Ist öfter hier
 
waldfee0071's Avatar
 
Join Date: Nov 2009
Posts: 216
Thanked: 189
waldfee0071 ist noch neu hier! | 0 Respekt Punkte
Default

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 is offline   Reply With Quote
Unread 14.03.13, 12:27   #3
Quabla
Mitglied
 
Join Date: Oct 2010
Posts: 296
Thanked: 151
Quabla ist noch neu hier! | 0 Respekt Punkte
Default

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 is offline   Reply With Quote
Unread 14.03.13, 16:18   #4
baldurgarda
Anfänger
 
Join Date: Nov 2012
Posts: 27
Thanked: 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
Default

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

Jetzt musst Dich nur noch a' bisserl anstrengen
baldurgarda is offline   Reply With Quote
Unread 14.03.13, 18:53   #5
Your_Conscience
Hinter dir!
 
Join Date: Apr 2010
Posts: 1,124
Thanked: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Default

@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 is offline   Reply With Quote
Unread 14.03.13, 20:04   #6
slahn
Erfahrenes Mitglied
 
slahn's Avatar
 
Join Date: Oct 2009
Posts: 639
Thanked: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Default

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 is offline   Reply With Quote
Unread 14.03.13, 20:54   #7
NetWebs
Banned
 
Join Date: Aug 2012
Posts: 223
Thanked: 68
NetWebs ist noch neu hier! | 0 Respekt Punkte
Default

@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 is offline   Reply With Quote
Unread 14.03.13, 21:25   #8
ilikecookies
Anfänger
 
Join Date: Jan 2011
Posts: 10
Bedankt: 49
ilikecookies ist noch neu hier! | 0 Respekt Punkte
Default

Quote:
Originally Posted by waldfee0071 View Post
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 is offline   Reply With Quote
Unread 14.03.13, 21:56   #9
Your_Conscience
Hinter dir!
 
Join Date: Apr 2010
Posts: 1,124
Thanked: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Default

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 is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 20:15.


Sitemap

().