summe von squares

Status
Nicht offen für weitere Antworten.

manu

Neues Mitglied
hi!

ich hab als aufgabe ein programm schreiben, das die summe von den squares und cubes bis zu der eingegebenen zahl n ausgibt, aber ich ahb schon mal probleme ein programm zu schreiben, das mir die squares und cubes ausgibt - sieht jemand was an diesem programm nicht stimmt? und wie kann ich diese zahlen jetzt in ein array speichern?

Code:
class Cube1 {

public static void main (String [] arg) {

  Out.print ("Bitte geben Sie eine Zahl ein: ");
    int n = In.readInt();

int s,maxsqr, sum,cube,maxcube, sqr;
int i=1;
  maxsqr=n*n;sum = 0;
while(i<=n)
{sqr=i*i;i++;

  maxcube=n*n*n;sum=0; 
while(i<=n)
{cube=i*i*i;i++;

Out.print(" " +sqr+ " ");}
Out.print(" " +cube+" ");
}}}
 
du überschreibst in den schleifen immer die vorangegangen werte
Code:
 sqr = i*i;
bei i = 1 -> sqr = 1
bei i = 2; -> sqr = 4 usw.

wenn du aufaddieren willst schreibe
Code:
 sqr += i * i
damit addierst du zu sqr den aktuellen wert von i*i

wg array: du brauchst zuerst die Größe des arrays (also z.b. size = n * n);
dann kannst du über den index einfach ins array schreiben
Code:
int[] sqrArray = new int[n * n]; // array erstellen mit größe n * n;
while(....) {
  sqr += ....
  sqrArray[i] = sqr;
}
 
danke! es funktioniert jetzt!

dass man
Code:
 sqr+=i*i
schreiben muss damit das alte nicht überschrieben wird ist sehr nützlich, das kann ich für ein andres programm auch brauchen.
 
manu hat gesagt.:
danke! es funktioniert jetzt!

dass man
Code:
 sqr+=i*i
schreiben muss damit das alte nicht überschrieben wird ist sehr nützlich, das kann ich für ein andres programm auch brauchen.

Doch, das alte wird überschrieben. Nur halt mit einem anderem Ergebnis als vorher !

sqr+=i*i ist das gleiche wie sqr= sqr + ( i*i ) An der Stelle ist halt die Verarbeitungsreihenfolge einfach nur entscheidend! Es wird zunächst sqr zu i*i addiert und das Ergebnis wird dann sqr zugewiesen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben