Problem z zadaniem na Jetbrains.

Problem z zadaniem na Jetbrains.
Kacpi7
  • Rejestracja:około 4 lata
  • Ostatnio:około 3 lata
  • Postów:35
0

Siemka, jestem w temacie operatorów relacyjnych i w sumie już kończe, ale ostatnie zadanie bardzo mnie męczy i niestety próbuję wykonać go już godzinę, ale bez skutecznie..

Musze napisać program, który ze scannera czyta 3 cyfry i zwraca prawdę, tylko jeśli JEDNA liczba jest dodatnia i niestety kompletnie brakuje mi pomysłow..

http://prnt.sc/13mowo4

Będę wdzięczny za wszelką pomoc ;)

edytowany 6x, ostatnio: Kacpi7
p_agon
Co Pan zrobił do tej pory?
AK
widzę, ze w/w Pan zadaje wiele pytań w/s pracy, co jest nieco kabaretowe
p_agon
Amerykaniec z własnym jachtem. Ma ludzi od wszystkiego :D
p_agon
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:96-230
  • Postów:953
1

Wczytujemy, sprawdzamy.. Bardziej rozwleklej się nie da :D

Kopiuj
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int a = scanner.nextInt();
    int b = scanner.nextInt();
    int c = scanner.nextInt();

    if (a > 0 && b <= 0 && c <= 0) {
      System.out.println("true");
    } else if (a <= 0 && b > 0 && c <= 0) {
      System.out.println("true");
    } else if (a <= 0 && b <= 0 && c > 0) {
      System.out.println("true");
    } else {
      System.out.println("false");
    }
}
}

Taki potworek tez dziala: :D

    System.out.println(a <= 0 && b <= 0 && c > 0 ? true : 
                               a > 0 && b <= 0 && c <= 0 ? true : a <= 0 && b > 0 && c <= 0 ? true : false);

Reasumując wszystkie aspekty kwintesencji tematu, dochodzę do fundamentalnej konkluzji: To by nic nie dało, nie dałoby nic! Przez 10 minut można, przy 2h to już jakaś zemsta pagona.
edytowany 3x, ostatnio: p_agon
aolo23
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:186
1

System.out.println(Stream.of(1, -2, -3).filter(x -> x > 0).count() == 1 ? "true" : "false");
No to na początek streamy :D
Z czasem zrozumiesz ;)


Exception oznacza więcej niż tysiąc słów.
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:12 dni
  • Postów:3277
2

Serio studiujesz informatykę i masz problem z tym zadaniem?
Wczytujesz zmienne, liczysz ile jest większych od 0, zwracasz licznik == 1

edytowany 1x, ostatnio: piotrpo
AK
PS. można mnożyć znaki
piotrpo
@AnyKtokolwiek: mnożenie znaków nie, 0 ustawi wszystko na +, chciałem dać takie wyrażenie return ((a != b) != c) != (a && b && c) (po przekształceniu do boolean) Ale sobie pomyślałem, że będę bił licealistę. Dopiero później zajrzałem w historię postów.
enedil
  • Rejestracja:prawie 12 lat
  • Ostatnio:dzień
  • Postów:1027
0

Tutaj dla zachęty rozwiązanie w Haskellu, można prosto przerobić na analogiczne:

Kopiuj
import Control.Monad(replicateM)

toInt :: Bool -> Int
toInt True = 1
toInt False = 0

main = do
    numbers <- replicateM 3 (readLn :: IO Int)
    putStrLn $ show $ sum [toInt $ x > 0 | x <- numbers] == 1
Zobacz pozostałe 6 komentarzy
enedil
@piotrpo: to jest nie przekazanie parametru w nawiasach kwadratowych, a przekazanie listy jako parametr :o praktycznie tak jak w pythonie
enedil
No i nie jest to operator przypisania - jest to wyciągnięcie elementu z monady. Gdyby kod nie wykorzystywał IO, można by to zrobić krócej i prościej
jarekr000000
@piotrpo: więc "<-" to nie jest operator przypisania tak do końca. a nawiasy kwadratowe w ogóle nie są zwiazane z wywołaniem funkcji. To lista takich x pochodzących z numbers , że x po zamianie na int jest wiekszy od 0.
piotrpo
Ok, przejdę sobie jakiś tutorial, do sushi się przekonałem, może i z Haskelem pójdzie :D
jarekr000000
@piotrpo: imo nie ma sensu tak dla sztuki, czytanie raczej niewiele da - trzeba z haskellem sobie zrobić kilka wieczorków kodując jakieś zadania. (99 problems albo podobne)
gk1982
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Łódź
  • Postów:541
0

JS

Kopiuj
(-a>>31)+(-b>>31)+(-c>>31)==-1


Don't give up learning JavaScript!
It is enjoyable to make things visible which are invisible.
Każdy programista przybywający z innego miasta jest fachowcem.
Anyone who stops learning is old, whether at twenty or eighty.
Anyone who keeps learning stays young.
The greatest thing in life is to keep your mind young.
edytowany 4x, ostatnio: gk1982
enedil
obrzydliwe to jest tbh, zresztą nie działa jak masz duże liczby

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.