标签:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1207
四柱汉诺塔问题
当 r = (sqrt(8*n+1)-1)/2 时,
存在 count = (n-(r*r-r+2)/2)*(int)pow(2,r)+1 ,此时所需的步骤最少。
1 #include<stdio.h> 2 #include<math.h> 3 4 int main() 5 { 6 int n,r; 7 long long int count; 8 while(scanf("%d",&n)!=EOF) 9 { 10 r = (sqrt(8*n+1)-1)/2; 11 count = (n-(r*r-r+2)/2)*(int)pow(2,r)+1; 12 printf("%I64d\n",count); 13 } 14 return 0; 15 }
标签:
原文地址:http://www.cnblogs.com/52Cassie/p/4925563.html