Cod sursa(job #1006291)

Utilizator MetaphorAlin D Metaphor Data 6 octombrie 2013 20:13:44
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <iostream>
#include <fstream>

using namespace std;

fstream fin("fractii.in",ios::in);
fstream fout("fractii.out",ios::out);


int k=0;

class fractii
{
    int x,y;
   public :
       fractii();
    void citire(int a, int b);
    void simplificare();
    void afisare();
    int echilateral();
    int egalitate(fractii b);
} ;

fractii::fractii()
{
    x=0;
    y=0;
}

int fractii::echilateral()
{   if(x==0&&y==0) return 1;
else
    if(x!=1&&x==y) return 1;
    return 0;
}

void fractii::simplificare()
{
 int a,b;
 a=x;
 b=y;

 while (a!=b)
  if (a>b)
   a=a-b;
  else
   b=b-a;


x=x/a;
   y=y/a;

}
void fractii::citire(int a,int b)
{
 x=a;
 y=b;
}
int fractii::egalitate(fractii b)
{
    if(x==b.x&&y==b.y) return 1;
    return 0;
}
void fractii::afisare()
{
    cout<<x<<" / "<<y<<endl;
}

int cautare(fractii v[],fractii a)
{
    for(int i=1;i<=k;i++)
        if(v[i].egalitate(a)) return 1;
    return 0;
}




int main()
{

int n; fractii a;
 fin>>n;

fractii v[1000];

for(int i =1; i<=n;i++)
    for(int j = 1 ; j<=n; j++)
     {
         a.citire(i,j);
         a.simplificare();
         if(a.echilateral()!=1&&cautare(v,a)==0) { k++; v[k]=a;}
     }

fout<<k;

 return 0;
}