Zahlensysteme

JavaNooby

Aktives Mitglied
Hi, ich hab Probleme mit dem 3er Zahlensystem und muss eine Mehtode in Java schreiben die im 3er System hochzählt.

Ich habe versucht das ganze irgendwie rekursiv zu lösen (kann natürlich sein dass ich da irgendwie falsch denk und es viel einfacher geht ^^)

Java:
	public static void hochzaehlen(int[] arr,int pos)
	{
		String output = "";
		for(int i = 0;i<arr.length;i++)
		{
			output=output+arr[i];
		}
		System.out.println(output);
		
		if(pos<0)
		{
			//rekursion abbrechen
			return;
		}
		
		//wenn schon eine 2 drinsteht uebertrag bilden
		if(arr[pos]==2)
		{
			if(pos-1<0)
			{
				//rekursion abbrechen
				return;
			}
			arr[pos-1] = arr[pos-1] +1;
			hochzaehlen(arr, pos-1);
		}
		else
		{
			arr[pos]=arr[pos]+1;
			hochzaehlen(arr, pos);
		}
		
	}
	public static void main(String[] args)
	{
		int[] arr = new int[4];
		hochzaehlen(arr, arr.length-1);
	}

Ich hab da einen Fehler drin und zwar dass wenn ich den Übertrag mach er hitnen nciht mehr weiter zählt. Was muss ich wie ändern dass er dann wieder von hinten Anfängt?

ich hab schon viel rumprobiert und kamm immer in ne Endlosschleife :D


Danke für die Hilfe ;)
 
F

Firephoenix

Gast
Hi,
wie genau soll denn die Ausgabe aussehen?
Hochzählen im 3er System stelle ich mir in etwa so vor (wobei ich kein Experte bei anderen Zahlensystemen bin, mir reich binär und hex ^^)
0,1,2,3,30,31,32,33,330,331,332,333,3330,3331,3332,3333...
Edit: das wäre glaube ich das 4er System... wohl eher so oder:
0,1,2,20,21,22,220,221,222...
Gruß
 

W9ND3R

Aktives Mitglied
Vielleicht kannst du auch einfach eine Schleife drum rum basteln?
Java:
do { ... } while ( ... )
Nur ein kleiner Gedanke, nicht lange durchdacht ...
 

Andi_CH

Top Contributor
Eine andere Idee ist mit einem privaten int ganz normal hochzuzählen und die Konversion in das andere Zahlensystem in den getter einzubauen.
 

Ähnliche Java Themen

Neue Themen


Oben