palindrome probleme

Status
Nicht offen für weitere Antworten.
K

kim988de

Gast
hallo das ist meine Aufgabe
Write a program to print all the 5-digit palindrome numbers. A number with the
same digits from either end is called a palindrome. Examples: 16261, 93439,
20102.

zu meinen Problem

Code:
class Main {
    public static void main(String[] args) {
       int n; 
        if (int n=10000;n<99999;); { 
            System.out.println(+n);
        }


das problem ist wie kann ich die 3. expression aufschreiben so dass der Computer versteht dass er nur palindrome anzeigen soll...
Koennt ihr mir paar tips geben...bitte keine Komplettloesungen...sondern nur hinweise...fuer anfaenger..danke..
 
S

SlaterB

Gast
du musst alle Kombinationen von drei Zahlen finden, das ist die Primäraufgabe,
und dann noch zwei der ersten Zahlen nochmal aufschreiben

hier paar Ideen:
http://www.java-forum.org/de/viewtopic.php?t=74985

Rekursion wäre für dieses Problem besonders elegant, kennst du aber vielleicht nicht,
einfache for-Schleifen können es genauso
 

Zwackelmann

Mitglied
Mit dem Ansatz den du angedeutet hast, ist das erste Problem, dass du die einzelnen Ziffern einer Zahl untersuchen musst. Das kannst du z.B. machen indem du die Zahl in einen String umwandelst:
Beispiel:
Code:
int zahl = 1000;
String string_zahl = Integer.toString(zahl);

Um die Ziffern zu untersuchen kannst du den charAt Befehl benutzen.
Code:
String wort = "Hallo";
char c = wort.charAt(4);
System.out.println(c); // Ausgabe "o"


Nun musst du nur noch die Ziffern vergleichen...
 

Schwups

Mitglied
Die von dir gesuchten Zahlen müssen die folgenden Voraussetzungen erfüllen:

a) Die 3. Ziffer ist beliebig
b) Die 2. und die 4. Ziffer sind beliebig, müssen aber gleich sein
c) Die 1. und die 5. Ziffer dürfen nicht 0 sein und müssen gleich sein

Es sollte nicht schwer sein diesen "Algorithmus" zu codieren ... beginnend bei 10001 und endend bei 99999...
 
K

kim988de

Gast
Schwups hat recht, es sind eigentlich nur 2 Bedingungen:
1) 2. und 4. Ziffer müssen gleich sein
2) 1. und 5. Ziffer müssen gleich sein

und integer zu String umwandeln kann ich ja schon aus meinen vorherigen Aufgaben.
 

0x7F800000

Top Contributor
SlaterB hat gesagt.:
Rekursion wäre für dieses Problem besonders elegant
Finde ich auch ;)
deswegen hier meine etwas lahme, aber fachidiotisch total korrekte Lösung :) :
Code:
import java.util.*;

public class Palindrome{
	
	public static Set<String> getPalindromes(Set<String> alphabet,int length){
		Set<String> result;
		if(length==0){
			result=new HashSet<String>();
			result.add(""); //die (nichtleere!) Menge mit der leeren Zeichenkette
		}else if(length==1){
			result=alphabet; //das alphabet zurueckgeben
		}else{
			result=new HashSet<String>();
			Set<String> coreSet=getPalindromes(alphabet,length-2);
			for(String core: coreSet){
				for(String element:alphabet){
					result.add(element+core+element);
				}
			}
		}
		return result;
	}
	
	public static void main(String[] args){
		
		//alphabet konstruieren
		Set<String> alphabet=new HashSet<String>();
		for(int i=0; i<10; i++){
			alphabet.add(String.valueOf(i));
		}
		
		//alle palindrome der länge 5 berechnen
		Set<String> palindromes=getPalindromes(alphabet,5);
		
		//ueberpruefen, ob die palindrome den konventionen
		//fuer die notation der natuerlichen zahlen im dekadischen
		//System entsprechen. ggf. aus der Menge entfernen
		for(Iterator<String> i=palindromes.iterator(); i.hasNext();){
			String s=i.next();
			if(!s.matches("[1-9]+\\d+")) i.remove();
		}
		
		//ausgeben
		System.out.println(palindromes);
		
		//da es sonst zu unuebersichtlich wird: maechtigkeit der erzeugten Menge kontrollieren
		System.out.println("size="+palindromes.size());
	}
}

edit: obwohl, hm, soo allgemein ist die lösung auch wieder nicht, ich hätte nämlich statt überall (etwa für's alphabet) Strings zu nehmen, beliebige Objekte zulasen sollen, steht ja nirgendwo festgeschrieben, was ein "Alphabet" sein soll, hauptsache es ist eine endliche Menge.
 
P

Peter1990

Gast
Wenn der Fragende diese Lösung abgibt, wird der Prof ihm vorschlagen mit ihm die Plätze zu tauschen.
 

0x7F800000

Top Contributor
Hehe, interpretiere das mal als kompliment^^
Naja, das ist eigentlich die naheliegenste Lösung, der Fragende soll zum spaß mal ein paar monate Prolog programmieren, da entdeckt man schnell die Freude an solchen Sachen :)
 

Zwackelmann

Mitglied
Naja, vielleicht etwas kompliziert für einen Java Anfänger :wink:
Rekursive Funktionen, Sets und reguläre Ausdrücke. Und das wahrscheinlich so etwa in der Aufgabe 2b des Java Grundkurses.
Das schockt ^^

Aber sicher hattest du Spaß dabei es zu programmieren ;)
 
K

kim988de

Gast
Hallo...
habe gerade gelesen dass sich eine kim988de euch geschrieben hat...aber das war ich leider nicht....jmd hat sich wohl als mich mit der ID kim988de angegeben...anyways danke fuer die tipps und werde das mal erstmal ein wenig verdauern und zurueckkommen...danke..
 
S

SlaterB

Gast
hmm, das lese ich jetzt zum dritten Mal in einer Woche, vorher sogut wie nie,
da muss ja jemand mit Sytem vorgehen ;)
 

0x7F800000

Top Contributor
wiederholungstäter^^
Ist jetzt der zweite hier von kim988de gepostete Beitrag gemeint? Wieso schreibt jemand sowas überhaupt... Das war weder witzig noch irgendwie trollig, sah einfach nach irgendeinen verschwommenen aussage aus ???:L
 
K

kim988de

Gast
Hallo..
das ist wirklich immernoch super schwer.

Code:
class Main { 
    public static void main(String[] args) { 
       int n; 
        for (int n=10000;n<99999;*// KANN ICH HIER EINE IF ANWEISUNG REINGEBEN?//* ); { 
            System.out.println(+n); 
        }

Ich muss dem computer ja klar machen dass nur 5 stellige Palindrome angezeigt werden soll. Ich habe wirklich keine Ahnung wie soll dass denn gehen?
Wir haben nur die for schleifen if schleifen und while do schleifen gelernt..bitte um hinweise...thanks
 
S

SlaterB

Gast
in die Schleifenbedingung kommt bei dieser Idee nix außer dem normalen n++;


in die Schleife selber, in Zeile 6, kannst du dann n mit if oder allerlei anderen Code beharken,
ohne Programmierkenntnisse und nur Fragezeichen gehts natürlich nicht
 

Landei

Top Contributor
Mann, warum so ein Gewese mit Strings und so?

Code:
    for(int a = 1; a < 10; a++) {
      for (int b = 0; b < 10; b++) {
        for (int c = 0; c < 10; c++) {
          System.out.println(10000*a + 1000*b + 100* c + 10*b + a);
        }
      }
    }
 
K

kim988de

Gast
dann hilft mir..ich habe wirklich null ahnung habe mir jetzt ein einsteiger java buch auf deutsch geholt damit ich im Unterricht etwas mitkomme aber ich bin jetzt voll behind...
Ich habe k. Ahnung wie ich das mit den Palindrome programmieren soll als 5 einzelne Integer waere es mir noch klar aber ich soll es als eine 5stellige Zahl benutzen und dann irgendwie umwandeln mit string oder so..bin total ueberfragt.....
waere euch programmierprofis super dankbar...
 

Landei

Top Contributor
Hallo? Teilnehmer? Was ist an meinem vorigen Code unklar?

Du hast bei einem 5-stellingen Palindrom immer das Schema abcba. Also gehst du in Schleifen alle möglichen Werte der Ziffern a, b und c durch. Dann zusammenaddieren - wie das Zehnersystem funktioniert, sollte eigentlich klar sein oder?
 

0x7F800000

Top Contributor
KANN ICH HIER EINE IF ANWEISUNG REINGEBEN?
Nun ja, manchmal wundere ich mich selbst, was man alles in eine Zeile reinpacken kann, wie etwa diesen quatsch hier:
Code:
public class TEST {
public static void main(String[] args){
	for(int a=10000; a<100000; System.out.print((a%10==(a/10000)%10 && (a/10)%10==(a/1000)%10)?(a+++"\n"):((a+++"").substring(0,0))));
}
}
Ist performancekill und übler code etc, kann doch kein mensch lesen^^
Aber lustig ist es :p


edit:
@Landei: wozu die multiplikationen? wenn man's schon auf die billige tour will, dann kann man das doch auch gleich noch billiger auf zeichenebene machen:
Code:
for(char i='1'; i<='9'; i++){
		for(char j='0'; j<='9'; j++){
			for(char k='1'; k<='9'; k++){
				System.out.println(i+""+j+""+k+""+j+""+i);
			}
		}	
	}
 

Landei

Top Contributor
Habe halt den rein arithmetischen Weg gewählt, um unseren Eleven nicht zu verschrecken.

Deiner ist auch hübsch :)
Aber wenn schon, dann:
Code:
   for(char i='1'; i<='9'; i++){ 
      for(char j='0'; j<='9'; j++){ 
         for(char k='0'; k<='9'; k++){ 
            System.out.printf("%c%c%c%2$c%1$c%n", i, j, k); 
         } 
      }    
   }
 
K

kim988de

Gast
landei...sorry dein code habe ich gar nicht verstanden...
andrey
das sieht aus wonach ich gesucht habe...werde das mal abchecken..d.anke...an alle
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Datums-Palindrome finden Java Basics - Anfänger-Themen 9
W Programm dass Palindrome erkennt Java Basics - Anfänger-Themen 6
L Palindrome aus Sätzen filtern Java Basics - Anfänger-Themen 53
E Palindrome Java Basics - Anfänger-Themen 4
kulturfenster Palindrome Java Basics - Anfänger-Themen 13
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
I Projekte in IDE untereinander sharen / Probleme beim Build Java Basics - Anfänger-Themen 8
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
V Probleme Guessing Game Java Basics - Anfänger-Themen 8
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
R JMenu/JMenuItem Probleme Java Basics - Anfänger-Themen 2
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
J Probleme mit dem Debugger Java Basics - Anfänger-Themen 4
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
J Probleme mit Kompilierung Java Basics - Anfänger-Themen 11
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
C Probleme mit paintComponent Java Basics - Anfänger-Themen 13
P Probleme mit JUnit-Tests, es kommt was anderes raus als bei manuellen Tests Java Basics - Anfänger-Themen 5
E JavaFX Editor Probleme mit der Zwischenablage Java Basics - Anfänger-Themen 12
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
R Erste Schritte Probleme bei 2D Spielfeld, mit einzufügender "Person" Java Basics - Anfänger-Themen 5
P Probleme bei der Installation von JavaFX Java Basics - Anfänger-Themen 3
S Mehrere Probleme im Code Java Basics - Anfänger-Themen 7
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
Dimax String Probleme Java Basics - Anfänger-Themen 12
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
Splayfer Java Array Probleme Java Basics - Anfänger-Themen 3
J Probleme bei IllegalArgumentException "werfen". Java Basics - Anfänger-Themen 1
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
X Probleme im Umgang mit PriorityQueue Java Basics - Anfänger-Themen 75
D Probleme mit dem Windowbuilder und JComboBox Java Basics - Anfänger-Themen 2
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
X Probleme mit Übungsaufgaben zu Zahlentypen Java Basics - Anfänger-Themen 4
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
Franzi1001 Probleme mit Eclipse Java Basics - Anfänger-Themen 7
T Probleme bei Installation von JDK Java Basics - Anfänger-Themen 2
C Probleme mit String-Vergleich Java Basics - Anfänger-Themen 4
C Probleme bei Regex Java Basics - Anfänger-Themen 9
V Probleme mit Arrays Java Basics - Anfänger-Themen 8
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
T Probleme mit Strings Java Basics - Anfänger-Themen 6
G Probleme bei Frame aufgaben Java Basics - Anfänger-Themen 6
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
L Probleme mit Java Java Basics - Anfänger-Themen 3
S Probleme mit abspielen einer .wav Datei Java Basics - Anfänger-Themen 2
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
J Probleme beim Array ausgeben Java Basics - Anfänger-Themen 4
M Probleme bei rekursiver Zuordnung Java Basics - Anfänger-Themen 1
I Probleme mit 2 dimensionale Arrays Java Basics - Anfänger-Themen 3
H Best Practice View probleme Java Basics - Anfänger-Themen 2
B Probleme mit Kreisberechnung Java Basics - Anfänger-Themen 15
E Probleme mit Scanner Java Basics - Anfänger-Themen 4
J Eclipse Export Probleme Java Basics - Anfänger-Themen 25
M Probleme beim verwenden von Packages Java Basics - Anfänger-Themen 6
D Probleme mit der Übergabe einer BorderPane Java Basics - Anfänger-Themen 2
J Interface Probleme bei der Implementierung Java Basics - Anfänger-Themen 1
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
V Klassen ObjectInputStream ->ReadObject Probleme Java Basics - Anfänger-Themen 5
P Probleme mit der Do-Schleife Java Basics - Anfänger-Themen 2
F Erste Schritte Compiling Probleme Java Basics - Anfänger-Themen 13
S Neuling und Probleme bei Schulaufgabe Java Basics - Anfänger-Themen 5
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
M Probleme mit Eclipse Java Basics - Anfänger-Themen 20
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Compiler-Fehler javac hat Probleme mit Paketen unter OSX Java Basics - Anfänger-Themen 2
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
B Variablen Probleme mit Eclipse Java Basics - Anfänger-Themen 6
H Mouse- und KeyListener Probleme? Java Basics - Anfänger-Themen 5
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
I Probleme bei Verzeichnissanalyse Java Basics - Anfänger-Themen 12
F Probleme mit privaten Klassen (abstrakten Klassen) Java Basics - Anfänger-Themen 1
H Probleme mit Klassen...oder: Eine Uhr Java Basics - Anfänger-Themen 9
G Probleme mit Konsole Java Basics - Anfänger-Themen 4
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
G Probleme mit Eclipse oder der URL Klasse Java Basics - Anfänger-Themen 5
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
M Probleme mit Anzeigen von String in GUI und if-Anweisung Java Basics - Anfänger-Themen 9
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
W Methoden Probleme mit der Scanner Methode Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben