Pagini recente » Cod sursa (job #2755190) | Cod sursa (job #1055428) | Cod sursa (job #255669) | Cod sursa (job #1454426) | Cod sursa (job #460342)
Cod sursa(job #460342)
#include<stdio.h>
#include<math.h>
int rec(int k,int a,int b){
if(k==1){
if(a==1)
return b-1;
else
return 4-b;
}
else{
int p1=1<<(k-1);
int p2=2<<(k-1);
int p3=p1<<1;
if(a>p1&&b<=p1)
return 3*p2+ rec(k-1,p1+1-b,p3+1-a);
if(a>p1&&b>p1)
return 2*p2 +rec(k-1,a-p1,b-p1);
if(a<=p1&&b>p1)
return p2+rec(k-1,a,b-p1);
if(a<=p1&&b<=p1)
return rec(k-1,b,a);
}
}
int main(){
int k;
int a,b;
FILE *fin=fopen("fractal.in","r");
FILE *fout=fopen("fractal.out","w");
fscanf(fin,"%d",&k);
fscanf(fin,"%d",&a);
fscanf(fin,"%d",&b);
/*printf("%d",k);
printf("%d",a);
printf("%d",b);*/
int x=rec(k,a,b);
fprintf(fout,"%d\n",x);
return 0;
}