为什么来自 consol 的用户输入没有第二次被读取和存储?



StackOverflow社区的好人你好,目前我面临一个问题,我需要你的建议/帮助。 我已经编写了一个代码,它将为测试用例和我的程序将执行的每个测试用例获取用户输入并提供结果。

此外,对于每个测试用例,我也从用户那里获取了一些其他值

例如

Code

Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
while(T-->0){
long K = sc.nextLong();
if (K >= 2 && K <= (10 ^ 12)) {
int d0 = sc.nextInt();
int d1 = sc.nextInt();
//some additional code
}
}

所有变量,即Kd0d1第一次接受输入,但第二次d0d1没有接受任何值,而是将值存储在变量K中(对于 T> 1),我不确定为什么?!

for ex -T = 3的值

Kd0T = 3d1的对应值为 5 3 0T = 2是 17 6 7 在这里,d0d1的值不会被存储,而是存储在K中,以便K = 17然后K = 6和循环结束(因为 T = 0

)提前感谢!

10 ^ 12

不是你所期望的。^是按位异或运算符。

运算符将在逻辑上将每个10位与12进行比较,如果两个输入位中只有一个为 1(因此另一个为 0),则将在给定位处输出一个1

二进制中的100b1010
12二进制是0b1100
因此10异或120b0110,在十进制中6

为了计算 10 的 12 次方,请使用Math.pow(10,12)

最新更新