Proste dodawanie

Proste dodawanie
Mr. Moon
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:19
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?

Kopiuj
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
tomanhez
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 4 lata
1
Kopiuj
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
Mr. Moon
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 ?
tomanhez
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
Spine
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
  • Rejestracja:około 22 lata
  • Ostatnio:5 minut
  • Postów:6656
1

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

Kopiuj
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.