心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0

刚刚开始被迫做英文题目,见识到了英文题目的BT,下定决心好好学英文。

此题需要注意:题目中并没有说i<=j。

以下是我的代码:

#include<stdio.h>
long f(long n)
{
    
long r=1;
    
while(n!=1)
    
{
       
if(n%2==1)
       
{
          n
=(n*3+1)/2;r+=2;
       }

       
else
       
{
          n
=n/2;r++;
       }

    }

    
return r;
}

int main()
{
    
long i,j;
    
while(scanf("%ld%ld",&i,&j)==2)
    
{
       
long ans=0;
       
bool change=false;
       
if(i>j)
       
{
          
long t=i;i=j;j=t;
          change
=true;
       }

       
for(long k=i;k<=j;k++)
       
{
          
long tmp=f(k);
          
if(tmp>ans) ans=tmp;
       }

       
if(!change)
         printf(
"%ld %ld %ld\n",i,j,ans);
       
else printf("%ld %ld %ld\n",j,i,ans);
    }

return 0;
}
posted on 2010-01-06 20:37 lee1r 阅读(610) 评论(0)  编辑 收藏 引用 所属分类: 题目分类:基础/模拟

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