infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Scarlat Ionut Alin din Martie 19, 2013, 01:12:48



Titlul: Cmmdc interativ si recursiv.
Scris de: Scarlat Ionut Alin din Martie 19, 2013, 01:12:48
Cmmdc interativ si recursiv.
In DevC++ nu are nicio eroare si merge perfect, compilatorul de pe site gaseste erori  :)


Cod :
#include<iostream.h>
#include<conio.h>
#include<stdio.h>

using namespace std;

//Varianta iterativa:
//Sa presupunem ca avem 2 Numere naturale a si b (nenule), si o variabila c (c natural). Iata pasii algoritmului:
//-Se imparte a la b, iar restul impartiri este retinut in c (c=a%b)
//-a ia valoarea lui b (a=b)
//-b ia valoarea restului impartirii (b=c)
//-daca b este diferit de 0 se revine la pasul 1, daca b este 0, cmmdc este a
int euclid(int a,int b)
   {
               int c;
               while(b) // cat timp b diferit de 0
                    {
                        c=a%b; // c = valoarea impartiri lui a la b
                        a=b;
                        b=c;  // b = restul impartiri lui a la b
                    } //end while
               return a;
   } // end euclid    
  
//Varianta recursiva:

  int euclidrec(int a,int b)
     {  
      if (b==0)
          
           b = a;      
      else
            euclidrec(b,a%b);
          
            
        } //end euclidrec


int main()
   {
          int a,b;
          cout<<"Dati a si b:";
          cin>>a>>b;
          cout<<"Varianta iterativa!"<<endl;
          cout<<"Cel mai mare divizor dintre "<<a<<" si "<<b<<" este : "<<euclid(a,b)<<endl;
          cout<<endl;
          cout<<"Varianta recursiva!"<<endl;
          cout<<"Cel mai mare divizor dintre "<<a<<" si "<<b<<" este : "<<euclidrec(a,b)<<endl;
          getch();
   }    
                        


Titlul: Răspuns: Cmmdc interativ si recursiv.
Scris de: George Marcus din Martie 19, 2013, 08:45:04
De ce ai avea nevoie de conio.h? Scoate :) Apoi, daca tot ai trimis o sursa in C++, conformeaza-te standardelor http://en.cppreference.com/w/cpp/header. Bafta!


Titlul: Răspuns: Cmmdc interativ si recursiv.
Scris de: Paul-Dan Baltescu din Martie 19, 2013, 23:46:30
Evaluatorul e o scula automata care se asteapta ca tu sa citesti numere din fisierul de intrare (in cazul de fata, cmmdc.in) si sa scrii rezultatul in fisierul de iesire (cmmdc.out). Nu e nevoie sa afisezi mesaje prietenoase, pentru ca nu stie sa le interpreteze. De asemenea, nu va apasa "Enter" la final si deci nu ai nevoie de getch. Daca nu ti-e foarte clar ce ai de facut, incearca sa te uiti la surse care au luat 100 (http://infoarena.ro/monitor?task=cmmdc&score_begin=100) de puncte sau mai pune intrebari.