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

Analiza programu

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
+1 głos
144 wizyt
pytanie zadane 17 lutego 2021 w C i C++ przez maciej22 Nowicjusz (130 p.)
#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;

int rek(int a,int b)
{
   if(a==b) return a;
   else if(a>b) return rek(a-b,b);
   else return rek(a,b-a);
}
int main ()
{
   int x,y;
   cout <<"Podaj 2 liczby ";
   cin >> x;
   cout <<endl;
   cin >>y;
   cout <<endl;
   cout <<"NWD wynosi " << rek(x,y);
   cout << "\n";

system ("pause");
return 0;
}
#include<iostream>
using namespace std;

int NWD(int a, int b)
{
    while(a!=b)
       if(a>b)
           a-=b;
       else
           b-=a;
    return a;
}

int main()
{
    int a, b;

    cout<<"Podaj dwie liczby: ";
    cin>>a>>b;

    cout<<"NWD("<<a<<","<<b<<") = "<<NWD(a,b)<<endl;

    return 0;
}

Przeanalizowałby mi ktoś linijka po linijce ten program? Bardzo mi to potrzebne.

komentarz 18 lutego 2021 przez VBService Ekspert (203,870 p.)

laugh

#include<iostream>
using namespace std;
 
int NWD(int a, int b)
{
    while(a!=b)
       if(a>b) a-=b;
       else b-=a;
       
    return a;
}

int NWD_Recursion(int a, int b)
{
   if(a==b) return a;
   else if(a>b) return NWD_Recursion(a-b, b);
   else return NWD_Recursion(a, b-a);
}
 
int main()
{
    int a, b;
 
    cout << "Podaj dwie liczby: ";
     cin >> a >> b;
 
    cout << "\nObliczenie NWD - petla while\n"
         << "NWD(" << a << "," << b << ") = " << NWD(a, b) << endl;
         
    cout << "\nObliczenie NWD - rekurencyjne wywolanie funkcji\n"
         << "NWD(" << a << "," << b << ") = " << NWD_Recursion(a, b) << endl;         
 
    return 0;
}

 

1 odpowiedź

+2 głosów
odpowiedź 17 lutego 2021 przez KumberTwo Dyskutant (8,270 p.)

Pierwszy program oblicza NWD rekurencyjnie, korzystając z algorytmu Euklidesa. Sprawdza czy a = b, jeśli tak to kończy rekurencję i zwraca a, jeśli nie to funkcja powtarza się, tylko gdy a > b to dla argumentów a-b i b a jeśli to b > a to funkcja powtórzy się z argumentami a, b-1. Druga funkcja oblicza NWD w pętli dopóki a będzie różne od b. Najpierw sprawdza czy a > b, jeśli tak to zmniejsza a o b, jeśli nie to zmniejsza b o a. Na koniec zwraca a, które jest wynikiem. Pewnie nie wyjaśniłem tego najlepiej więc polecam przeczytać ten artykuł. Mam nadzieję że pomogłem choć trochę :)

Podobne pytania

0 głosów
1 odpowiedź 564 wizyt
pytanie zadane 27 sierpnia 2016 w C i C++ przez Itan Początkujący (250 p.)
0 głosów
1 odpowiedź 387 wizyt
pytanie zadane 27 sierpnia 2016 w C i C++ przez Itan Początkujący (250 p.)
0 głosów
1 odpowiedź 465 wizyt
pytanie zadane 16 sierpnia 2016 w C i C++ przez Itan Początkujący (250 p.)

89,728 zapytań

138,332 odpowiedzi

309,340 komentarzy

59,649 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 429p. - Argeento
  2. 427p. - nidomika
  3. 396p. - Mikbac
  4. 392p. - ssynowiec
  5. 390p. - Łukasz Eckert
  6. 387p. - TheLukaszNs
  7. 386p. - rucin93
  8. 382p. - Michal Drewniak
  9. 382p. - Marcin Harasimowicz
  10. 378p. - JMazurkiewicz
  11. 373p. - tokox
  12. 362p. - adrian17
  13. 359p. - overcq
  14. 350p. - Mawrok
  15. 345p. - Vinox
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...