Pagini recente » Cod sursa (job #3179394) | Cod sursa (job #2118796) | Cod sursa (job #826961) | Cod sursa (job #986608) | Cod sursa (job #716365)
Cod sursa(job #716365)
#include<fstream.h>
#include<math.h>
/*using namespace std;*/
long k,x,y,cadran,pas;
void det_cadran()
{
if (x>=1 && x<=pow(2,k-1))
{
if (y>=1 && y<=pow(2,k-1))
cadran=1; else
cadran=2;
} else
{
if (y>=1 && y<=pow(2,k-1))
cadran=4; else
cadran=3;
}
}
void incrementare()
{
pas=pas + (pow(2,2*k-2) * (cadran-1));
}
void schimbare()
{
long x2,y2;
if (cadran==1)
{
x2=y;
y2=x;
} else
if (cadran==2)
{
x2=x;
y2=y-pow(2,k-1)/*x-4*/;
} else
if (cadran==3)
{
x2=x-pow(2,k-1);
y2=y-pow(2,k-1)/*x-4*/;
} else
{
x2=pow(2,k-1)-y+1/*4-y+1*/;
y2=pow(2,k)-x+1/*8-x+1*/;
}
x=x2;
y=y2;
k--;
}
int main()
{
ifstream fin("fractal.in");
fin>>k>>x>>y;
while (k!=0)
{
det_cadran();
incrementare();
schimbare();
}
ofstream fout("fractal.out");
fout<<pas;
fin.close();
fout.close();
return 0;
}