特殊的汉诺塔!HDU 汉诺塔II 1207

特殊的汉诺塔!HDU 汉诺塔II 1207

今天组队比赛时遇到了汉诺塔的题,开始时以为很难,但是仔细看题时,想到了曾今在杭电上做个一题,却发现是水题一道,直接一个打表!
TJU 1731.   Strange Towers of Hanoi
#include < stdio.h >
int  main()
{
    
int a[13]={0,1,3,5,9,13,17,25,33,41,49,65,81};
    
for(int i=1;i<=12;i++)
      printf(
"%d\",a[i]);
}
 
真正的题目还是杭电上的  http://acm.hdu.edu.cn/showproblem.php?pid=1207
#include < stdio.h >
#include
< math.h >
int  main()
{
    
long a[65];
    a[
1]=1;
    
long i,j,n,m,r;
    
for(i=2,j=1,r=1,m=2;i<66;i++,j++)
        
if(j<=m)
            a[i]
=a[i-1]+pow(2,r);
        
else {
            m
++;
            j
=1;
            r
++;
            a[i]
=a[i-1]+pow(2,r);
        }

    
while(scanf("%d",&n)==1){
        printf(
"%d\n",a[n]);
    }

}

    
规律:
a[1]=1;
a[2]=a[1]+2;a[3]=a[2]+2;(2个加2^1)
a[4]=a[3]+4;a[5]=a[4]+4;a[6]=a[5]+4;(3个加2^2);
…………………………………………(4个加2^3);
O(∩_∩)O~

你可能感兴趣的:(特殊的汉诺塔!HDU 汉诺塔II 1207)