Pagini recente » Cod sursa (job #2803864) | Cod sursa (job #190736) | Cod sursa (job #1036848) | Cod sursa (job #908744) | Cod sursa (job #2035377)
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int fractal(int n, int i ,int j){
int sol;
if(n==1){
if(i==1){
if(j==1)
sol=0;
else
sol=3;
}else{
if(j==1)
sol=1;
else
sol=2;
}
}else{
int putere=1<<n;
int block=1,counter=0;
for(int x=1;x<n;x++)
block*=4;
if(i<=putere/2){
if(j<=putere/2){
int aux=i;
i=j;
j=aux;
}else{
counter=3;
j-=putere/2;
i=putere/2-i+1;
j=putere/2-j+1;
int aux=i;
i=j;
j=aux;
}
}else{
counter=1;
i-=putere/2;
if(j>putere/2){
j-=putere/2;
counter++;
}
}
sol=counter*block+fractal(n-1,i,j);
}
return sol;
}
int main()
{
FILE *fin, *fout;
int n,i,j;
fin=fopen("fractal.in","r");
fout=fopen("fractal.out","w");
fscanf(fin,"%d%d%d",&n,&j,&i);
fprintf(fout,"%d",fractal(n,i,j));
fclose(fin);
fclose(fout);
return 0;
}