f[n] = 1;
for(i = n-1;i >= 1;i --)
f[i] = 2*f[i+1];
那么输出就为:
printf("%I64d\n",f[k]);
#include<stdio.h> #include<math.h> int main() { int t,i,n,k; long long int Hanoi[65],f[65]; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); f[1] = 1; for(i = 2;i <= n-k+1;i ++) f[i] = 2*f[i-1]; printf("%I64d\n",f[n-k+1]); } return 0; }
原文:http://www.cnblogs.com/52Cassie/p/4945746.html