我已经尝试过每次测试并且输出是正确的,但我不明白它为什么显示"错误答案"在我提交给UVA之后。请帮助我找出这段代码的问题。这是我的代码..
import java.util.*;
class Main
{ `
int counter=0;
public static void main(String [] args)
{
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine())
{
String str=sc.nextLine();
StringTokenizer st=new StringTokenizer(str," ");
String a=(String)st.nextElement();
String b=(String)st.nextElement();
long i=Long.parseLong(a,10);
long j=Long.parseLong(b,10);
Main mn=new Main();
long ans;
if(i>j)
{
ans=mn.count(j,i);
}
else
{
ans=mn.count(i,j);
}
System.out.print(i+" "+j+" "+ans);
System.out.println();
}
}
long count(long m,long n)
{
if(m==1 && n==1)
{
return 0;
}
long input=0;
long ans=0;
for(long i=m;i<=n;i++)
{
input=i;
while (true)
{
if(input==1)
{
counter++;
break;
}
if(input%2==0)
{
input=input/2;
counter++;
}
else
{
input=input*3+1;
counter++;
}
}
if(counter>ans)
{
ans=counter;
}
counter=0;
}
return ans;
}
}
答案 0 :(得分:0)
您的代码在测试用例1 1
上失败。
输出应为1,但程序为0。
修复很简单:
if(m==1 && n==1)
{
return 1; // instead of 0
}