• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie; Trójką pitagorejską nazywa się w matematyce trzy liczby naturalne a,b,c spełniające warunek...

Object Storage Arubacloud
0 głosów
860 wizyt
pytanie zadane 7 grudnia 2015 w C i C++ przez Placidus Użytkownik (580 p.)

Trójką pitagorejską nazywa się w matematyce trzy liczby naturalne a,b,c
spełniające warunek a^2 + b^2 = c^2. Napisać program wczytujący 3 liczby
naturalne i sprawdzający czy tworzą one trójkę pitagorejską.

 

Posiadam takie rozwiązanie;

a)jednak nie rozumiem dla czego są te 3 róznę ify skoro ma spełniać tylko ten jeden warunek a^2 + b^2 = c^2

b) nie miałem nigdy doczynienia z funkcją bool może ma ktoś jakiś namiar na fajne wytłumaczenie ?

 

#include <iostream>
using namespace std;

int main()
{
    int a, b, c;
    bool wynik=false;

    cout << "Podaj trzy rozne liczby naturalne: ";
    cin>>a>>b>>c;

    if (a*a + b*b == c*c or a*a + c*c == b*b)   wynik=true;
    if (b*b + a*a == c*c or b*b + c*c == a*a)   wynik=true;
    if (c*c + a*a == b*b or c*c + b*b == a*a)   wynik=true;

    if (wynik) cout<<"Podane liczby tworza trojke pitagorejska"<<endl;
    else       cout<<"Podane liczby nie tworza trojki pitagorejskiej"<<endl;

    return 0;
}

 

3 odpowiedzi

+1 głos
odpowiedź 7 grudnia 2015 przez pietrzakacper Mądrala (7,480 p.)
wybrane 7 grudnia 2015 przez Placidus
 
Najlepsza

a) Trzy różne warunki są ponieważ każda wprowadzona liczba może być a, b lub c w zależności od wartości. Jeśli wprowadzisz wartości 10, 8, 6 to pierwszy warunek nie jest prawdziwy, ale trzeci już tak.

b) bool to typ logiczny który może przyjąć tylko dwie wartości true lub false

komentarz 7 grudnia 2015 przez pietrzakacper Mądrala (7,480 p.)

a) Tutaj dopowiem, że każda liczba  może być a,b lub c ze wzoru na trójkę pitagorejską oczywiście. Czyli mimo tego, że w programie jest przypisana do zmiennej a to ze wzoru może być to c.

komentarz 16 stycznia 2016 przez CichoCiemny Początkujący (480 p.)

A czy taki zapis nie jest poprawny? 

#include <iostream>

using namespace std;

int a,b,c;

int main()
{

            cin >> a >> b >> c;


            if ((a*a)+ (b*b) == c*c || (b*b)+(c*c) == a*a || (a*a)+(c*c) == b*b)
                cout << "TAK"<<endl;
            else
            {
                cout << "NIE"<<endl;
            }

return 0;
}

 

komentarz 17 stycznia 2016 przez pietrzakacper Mądrala (7,480 p.)
Jak najbardziej, od kodu który podesłał kolega zadający pytanie różni się tym, że korzystasz z tego, że dodawanie jest przemienne.
0 głosów
odpowiedź 16 stycznia 2016 przez maciek061 Gaduła (4,490 p.)
Czy tu chodzi o to, że a*a+b*b=c*c?

Jeśli tak to wystarczy to: http://wklej.org/id/1908131/

A jeśli chodzi o to że pierwiatek kwadraowy zsumowanych każdych dwóch liczb daje pierwiatek kwadratowy pozostałej liczby to będzie to wyglądało tak: http://wklej.org/id/1908134/

 

A jeśli po prostu jedna z tych kombinacji to wygląda to tak: http://wklej.org/id/1908136/

W sumie nie wiem po co tu bool.
0 głosów
odpowiedź 17 stycznia 2016 przez Schizohatter Nałogowiec (39,600 p.)
Można to ewentualnie śmignąć jednym ifem, pod warunkiem, że najpierw się (np. podczas wprowadzania liczb) sprawdzi, która liczba jest największa. c musi być największe. Wtedy znamy c no i już wystarczy tylko jeden if.

Podobne pytania

0 głosów
3 odpowiedzi 2,186 wizyt
pytanie zadane 7 listopada 2015 w C i C++ przez aki3130pl Nowicjusz (140 p.)
0 głosów
1 odpowiedź 137 wizyt
0 głosów
1 odpowiedź 132 wizyt
pytanie zadane 16 listopada 2018 w C i C++ przez gorgonkowa Obywatel (1,810 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...