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