Ahoi,
ich muss für die Uni das sog. Schachbrettproblem lösen, habe auch bereits ein Programm geschrieben.
Nun habe ich jedoch ein Syntax-Fehler drin, den ich selber nicht beheben kann, kann mir jemand helfen diesen zu beheben bzw. die Fehlerquelle ausfindig zu machen ?
Hier eine kurze Zusammenfassung des Problems und der Aufgabenstellung:
Auf jedes Feld des Schachbretts wird ein Reiskorn gelegt und pro weiteres Feld wird die vorherige Zahl verdoppelt.
"Schreiben Sie ein Programm Schachbrett, das es ermöglicht, die Anzahl der Körner zu berechnen, die der Erfinder erhalten würde. Das Programm muss in der Lage sein, sehr lange Ganzzahlen zu verarbeiten."
Man darf kein BigInteger benutzen.
Mein Programmcode sieht wiefolgt aus :
ich muss für die Uni das sog. Schachbrettproblem lösen, habe auch bereits ein Programm geschrieben.
Nun habe ich jedoch ein Syntax-Fehler drin, den ich selber nicht beheben kann, kann mir jemand helfen diesen zu beheben bzw. die Fehlerquelle ausfindig zu machen ?
Hier eine kurze Zusammenfassung des Problems und der Aufgabenstellung:
Auf jedes Feld des Schachbretts wird ein Reiskorn gelegt und pro weiteres Feld wird die vorherige Zahl verdoppelt.
"Schreiben Sie ein Programm Schachbrett, das es ermöglicht, die Anzahl der Körner zu berechnen, die der Erfinder erhalten würde. Das Programm muss in der Lage sein, sehr lange Ganzzahlen zu verarbeiten."
Man darf kein BigInteger benutzen.
Mein Programmcode sieht wiefolgt aus :
Java:
import inout.*;
import java.util.Arrays;
public class Schachbrett1
{
public static void main()
{
int koerner[][]= new int [21][1];
int summe[][]= new int [21][1];
int uebertrag[][]= new int [21][1];
for(int i=0; i<summe.length; i++)
{
summe[i][0]= 0;
}
for(int i=0; i<koerner.length; i++)
{
koerner[i][0]= 0;
}
koerner[koerner.length-1][0]=1;
for(int i=0; i<uebertrag.length; i++)
{
uebertrag[i][0]= 0;
}
anfang(koerner, summe, uebertrag);
zaehler(koerner, koerner, uebertrag);
zaehler(koerner, summe, uebertrag);
visualisierung(koerner, summe, i);
}
public static void zaehler(int [][] koerner,int [][]summand2, int [][] uebertrag)
{
int x=0;
uebertragsberechner(koerner, summand2, uebertrag);
for(int k=1;k<koerner.length;k++)
{
x=koerner[koerner.length-k][0];
if((koerner[koerner.length-k][0]+summand2[koerner.length-k][0]+uebertrag[koerner.length-k][0])> 9)
{
x=(koerner[koerner.length-k][0]+summand2[koerner.length-k][0]+uebertrag[koerner.length-k][0])%10;
summand2[koerner.length-k][0]=x;
}
else
{
summand2[koerner.length-k][0]= koerner[koerner.length-k][0]+summand2[koerner.length-k][0]+uebertrag[koerner.length-k][0];
}
}
}
public static void uebertragsberechner(int [][] koerner,int [][]summand2, int [][] uebertrag)
{
int laenge= koerner.length;
for(int i=0; i<uebertrag.length; i++)
{
uebertrag[i][0]= 0;
}
for(int l=1; l<koerner.length-1; l++)
{
if((koerner[laenge-l][0]+summand2[laenge-l][0]+uebertrag[laenge-l][0])> 9)
{
uebertrag[laenge-l-1][0]=1;
}
}
}
public static void anfang(int koerner[][], int [][] summe, int [][] uebertrag) //Visualisierung
{
zaehler(koerner, summe, uebertrag);
System.out.println("");
System.out.println("Schachfeldzaehler\t\t\t Koerner\t\t\t Summe der Koerner");
System.out.print("1\t\t\t ");
for(int i=0;i<koerner.length; i++)
{
System.out.print(koerner[i][0]);
}
System.out.print("\t\t\t ");
for(int i=0;i<koerner.length; i++)
{
System.out.print(koerner[i][0]);
}
}
public static void visualisierung(int[][]koerner, int [][] summe, int i)
{
System.out.println();
System.out.print(i+"\t\t\t ");
for(int j=0;j<koerner.length; j++)
{
System.out.print(koerner[j][0]);
}
System.out.print("\t\t\t ");
for(int j=0;j<summe.length; j++)
{
System.out.print(summe[j][0]);
}
}
}