#include <stdio.h>

int d[10000010];
int len= 0, p= 0, q= 0, i= 0;

int main()
{
    d[
0]= 1;
    
for( i= 0; i<= 10000000++i )
    {
        
if( d[p]* 2+ 1== d[len] ) p++;
        
if( d[q]* 3+ 1== d[len] ) q++;
        
        d[
++len]= d[p]*2< d[q]* 3? d[p++]* 2+ 1: d[q++]* 3+ 1;
    }
    
    
while( scanf("%d",&p)!= EOF )
        printf(
"%d\n", d[p-1] );
    
    
return 0;
}
posted on 2009-01-04 10:29 Darren 阅读(180) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理