Pagini recente » Cod sursa (job #2382108) | Cod sursa (job #214716) | Cod sursa (job #2048741) | Cod sursa (job #2477585) | Cod sursa (job #1978569)
#include <iostream>
#include <fstream>
#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 citire("fractal.in");
citire>>k>>x>>y;
citire.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 afisare("fractal.out");
afisare<<nrpasi;
afisare.close();
}