Számlálásos ciklusok egymásba ágyazva elszámolnak
Nem a legpontosabb a cím, de mást nem tudtam neki adni.
Szóval. Miért hoz ki nyolcvanhármat, és nem pedig negyvenötöt? A második feladat az, de valami hibát vétettem, amit meg is találtam, csak hogy oldjam meg, hogy működjön?
■ Szóval. Miért hoz ki nyolcvanhármat, és nem pedig negyvenötöt? A második feladat az, de valami hibát vétettem, amit meg is találtam, csak hogy oldjam meg, hogy működjön?
package nyul;
import java.io.*;
import java.util.Scanner;
public class Nyul {
public static void main(String[] args) throws FileNotFoundException {
Scanner s = null;
int n, l, k;
int[][] nyulak;
try {
s = new Scanner(new BufferedReader(new FileReader("nyul.be")));
n = s.nextInt();
l = s.nextInt();
k = s.nextInt();
System.out.println("Évek száma:\t\t" + n + "\nLegmagasabb kor:\t" + l + "\nSzaporodhat ekkor már:\t" + k);
nyulak = new int[l][2];
for (int i = 0; i < l; i++) {
for (int j = 0; j < 2; j++) {
nyulak[i][j] = (i < k - 1 && j == 1) ? 0 : s.nextInt();
System.out.print((j == 0) ? (i + 1) + " éves nyulak száma " + nyulak[i][0] : "\t" + nyulak[i][1] + "\n");
}
}
} finally {
if (s != null) {
s.close();
}
}
int szamuk = 0;
for (int i = 0; i < l; i++) {
szamuk += nyulak[i][0];
}
int ujak = 0;
for (int i = 0; i < n; i++) { // Eggyel negyvenöt, ami a helyes. Nullával nyolcvanhárom.
for (int j = 0; j < l; j++) {
if (j < k - 1) {
szamuk += nyulak[j][0];
} else {
szamuk += nyulak[j][0] * nyulak[j][1];
ujak += nyulak[j][0] * nyulak[j][1];
}
}
for (int j = l - 1; j >= 0; j--) {
nyulak[j][0] = (j == 0) ? ujak : nyulak[j - 1][0];
}
for (int j = 0; j < l; j++) {
System.out.println((i + 1) + ". év, " + (j + 1) + ". kor: " + nyulak[j][0]);
}
ujak = 0;
}
System.out.println("Nyulak száma: " + szamuk);
}
}
Kezdd újra
én nekem fogalmam nincs mi