Pagini recente » Cod sursa (job #1494931) | Cod sursa (job #1038565) | Cod sursa (job #2394811) | Cod sursa (job #366653) | Cod sursa (job #255317)
Cod sursa(job #255317)
#include <fstream>
using namespace std;
long long xcrt,ycrt,aux,pas;
long long theX,theY;
ofstream f2("fractal.out");
void incr(int k)
{
switch(k)
{
case 1: ycrt+=1;break;
case -1: ycrt-=1;break;
case 3: xcrt+=1;break;
case -3: xcrt-=1;break;
}
}
void draw ( int k , int a,int b,int c,int d, int &gata)
{
if(k==1)
{
incr(a);
pas++;
if(xcrt==theX && ycrt==theY) {f2<<pas;gata=1;}
else
{
incr(b);
pas++;
if(xcrt==theX && ycrt==theY) {f2<<pas;gata=1;}
else
{
incr(c);
pas++;
if(xcrt==theX && ycrt==theY) {f2<<pas;gata=1;}
else
{
incr(d);
pas++;
if(xcrt==theX && ycrt==theY) {f2<<pas;gata=1;}
}
}
}
}
else
{
if(!gata) draw(k-1,b,a,-b,a,gata);
if(!gata) draw(k-1,a,b,-a,b,gata);
if(!gata) draw(k-1,a,b,-a,-a,gata);
if(!gata) draw(k-1,-b,-a,b,b,gata);
}
}
int main()
{
ifstream f("fractal.in");
int k;
int ok=0;
xcrt=1;
ycrt=1;
f>>k>>theX>>theY;
if(theX==1 && theY==1) f2<<"0";
else draw(k,1,3,-1,0,ok);
f.close();
f2.close();
return 0;
}