gpt4 book ai didi

java - 我没有使用 cmd .prompt 在 java 中获得正确的输出

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:01 27 4
gpt4 key购买 nike

对于大量输入,最后一个输入的输出不会显示。当我过去输入 15 个或更多不同的输入时,我得到的输出比给定的输出数量少 1。未显示的输出为最后一个输出。

 Scanner sc = new Scanner(System.in);
int t=sc.nextInt();

while(sc.hasNext())
{

try
{
long x=sc.nextLong();
System.out.println(x+" can be fitted in:");
if(x>=-128 && x<=127)System.out.println("* byte");
if(x>=-pow(2,15) && x<pow(2,15))System.out.println("* short");
if(x>=-(long)pow(2,31) && x<(long)pow(2,31))System.out.println("* int");
if(x>=-(long)pow(2,63) && x<(long)pow(2,63))System.out.println("* long");

//Complete the code
}
catch(Exception e)
{
System.out.println(sc.next()+" can't be fitted anywhere.");
}

}

最佳答案

嗯,我认为,代码的第二行应该解释输入中缺少的数字。您从输入中读取第一个数字,然后对其不执行任何操作:

int t=sc.nextInt();

但是您的代码还有更多问题。从 Actor 到(长)来看,您在这些行中所做的事情:

        if(x>=-(long)pow(2,31) && x<(long)pow(2,31))System.out.println("* int");
if(x>=-(long)pow(2,63) && x<(long)pow(2,63))System.out.println("* long");

我猜测您的 pow 函数不会返回 long,但可能返回 int。也许您在 pow 函数内部进行的计算也是对整数进行的。这将导致整数溢出并返回不正确的结果。您应该将它们更改为long

此外,您尝试计算的最后一个值 - pow(2,63) - 甚至无法适合long`,因此您无法计算它。我建议改用 Long.MAX_VALUE。

关于java - 我没有使用 cmd .prompt 在 java 中获得正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39690680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com