Pagini recente » Cod sursa (job #2192484) | Cod sursa (job #341212) | Cod sursa (job #2446343) | Cod sursa (job #3156222) | Cod sursa (job #460339)
Cod sursa(job #460339)
#include<stdio.h>
#include<math.h>
long rec(int k,long a,long b){
if(k==1){
if(a==1)
return b-1;
else
return 4-b;
}
else{
unsigned long p1=1<<(k-1);
unsigned long p2=2<<(k-1);
unsigned long 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;
long a,b;
FILE *fin=fopen("fractal.in","r");
FILE *fout=fopen("fractal.out","w");
fscanf(fin,"%d",&k);
fscanf(fin,"%ld",&a);
fscanf(fin,"%ld",&b);
/*printf("%d",k);
printf("%d",a);
printf("%d",b);*/
fprintf(fout,"%ld",rec(k,a,b));
return 0;
}