Proste dodawanie

Odpowiedz Nowy wątek
2018-10-28 23:39
0

Cześć:)

Mam zadanie z portalu spoj

Napisać program do dodawania dwóch liczb całkowitych. Na wejściu podane są w oddzielnych liniach dwie liczby naturalne A oraz B mniejsze od 200. Na wyjściu należy wypisać wartość ich sumy, A + B.

Jak mogę krócej napisać ten program niż to co zrobiłem?

import java.util.Scanner;

public class dodawanie{
    public static void main(String[] args) {
        int suma = 0, a, b;
        Scanner in = new Scanner(System.in);

        System.out.println("Wejście: ");

        a = in.nextInt();
        b = in.nextInt();
        suma = a + b;

            while(suma>400 || a>200 || b>200){
                System.out.println("Wejście: ");
                a = in.nextInt();
                b = in.nextInt(); 
                suma = a + b;
            }

        System.out.println("Wyjście: ");
        System.out.println(suma);

    }
}
edytowany 1x, ostatnio: Mr. Moon, 2018-10-28 23:46

Pozostało 580 znaków

2018-10-29 00:12
import java.util.Scanner;

public class dodawanie{
    public static void main(String[] args) {
       int suma = 0, a = 0, b = 0;
        Scanner in = new Scanner(System.in);
        while (true) {
            System.out.println("Wejście: ");
            a = in.nextInt();
            b = in.nextInt();
            suma = a + b;
            if(suma>400 || a>200 || b>200) {} else {break;}
        }
        System.out.println("Wyjście: "+suma);
    }
}

to sprawdzanie sumy możesz wyrzucić bo po co ci to jeśli i tak sprawdzasz a i b

edytowany 3x, ostatnio: tomanhez, 2018-10-29 00:22
Tak z sumą racja... dobrze rozumiem, że pętla while z warunkiem "true" wykonuje się tak długo dopóki warunek if nie będzie spełniony ? - Mr. Moon 2018-10-29 00:41
tak dokładnie, odpowiedzialne za to jest break; , równie dobrze można było dodać przed pętlą zmienną typu boolean z domyślną wartością true, wrzucic ją w while i zamiast break zmienic jej wartość na false ale po co pisać zbędny kod - tomanhez 2018-10-29 00:57
W tym kodzie można użyć do { ... } while(...); i będzie jeszcze ładniej, co nie zmienia faktu, że ten kod nie rozwiązuje tego zadania.. - Spine 2018-10-29 07:51

Pozostało 580 znaków

2018-10-29 00:23
1

Sprawdziłem na szybko w Pythonie (PyPy 2.6) i taki kod przechodzi:

a = int(raw_input())
b = int(raw_input())
print a + b

Czyli wcale nie musisz sprawdzać, czy wejście jest poprawne!
Małe liczby dla wejścia masz podane w treści zadania, żebyś nie myślał sobie, że będziesz musiał dodawać duże liczby (np. 30-to cyfrowe).

Pętlę w ogóle możesz sobie darować, bo nie ma tego w treści zadania. Gdyby miało być więcej niż jedna suma, to miałbyś w treści napisane, że pierwszy wiersz zawiera ilość liczb, bądź ilość par. Wtedy byś mógł coś robić w pętli.
Np. takie zadanie ma podaną ilość przypadków do rozważenia: https://pl.spoj.com/problems/PA05_POT/

W pierwszej linii wejścia znajduje się jedna liczba całkowia D (1≤D≤10), oznaczjąca liczbę przypadków do rozważenia.

No i jeszcze jedno... Wyniki Twojego programu sprawdza automat, więc wypisywanie na wyjściu czegokolwiek innego niż podano w treści zadania powinno skutkować niezaliczeniem testów. Powinieneś wywalić to: System.out.println("Wyjście: ");.

edytowany 6x, ostatnio: Spine, 2018-10-29 00:31

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0