nyoj-88 汉诺塔(一)
汉诺塔的规律就是当有n层时,一共需要移动2的n次方减1次
那么问题来了,求2的n次方。。。。
#include<stdio.h>
#include<string.h>
long long deal(long long n){
long long t;
if(n==1)
return 2;
t=deal(n/2);
if(n%2==0)
return ((t%1000000)*(t%1000000))%1000000;
else
return (2*(t%1000000)*(t%1000000))%1000000;
}
int main(){
int N;
long long number;
scanf("%d",&N);
while(N--){
scanf("%lld",&number);
printf("%lld\n",deal(number)-1);
}
return 0;
}