Pagini recente » Cod sursa (job #715736) | Cod sursa (job #662965) | Cod sursa (job #1286410) | Cod sursa (job #1627402) | Cod sursa (job #1978278)
#include <iostream.h>
#include <fstream.h>
#include <math.h>
int x,y,nrpasi;
int v[5]={0,1,2,3,4}; // initializarea vectorului cu cadrane
int cadr(int k,int q){ // calculul cadranului
if(x<=q/2)
if(y<=q/2)
return v[1];
else
return v[4];
else
if(y<=q/2)
return v[2];
else
return v[3];
}
int main (){
int k,q,aux,c;
ifstream cit("fractal.in");
cit>>k>>x>>y;
cit.close();
while(k>=1){
q=pow(2,k);
if(x>q) // ajustarea coordonatei x
x-=q;
if(y>q) // ajustarea coordonatei y
y-=q;
c=cadr(k,q);
if(c==1){ // ajustarea cadranului I
aux=v[2];
v[2]=v[4];
v[4]=aux;
}
if(c==4){ // ajustarea cadranului IV
aux=v[1];
v[1]=v[3];
v[3]=aux;
}
k--; // micsorarea ordinului
nrpasi=nrpasi+((pow(2,2*k))*(c-1)); // calcularea numarului de pasi
}
ofstream af("fractal.out");
af<<nrpasi;
af.close();
}