【发布时间】:2020-12-22 22:06:56
【问题描述】:
您好,我开始在 dmoj 链接这里做一些问题:https://dmoj.ca/problem/ccc03j2
我已经写好了代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int x = 0;
int y = 0;
boolean loop = true;
StringBuilder result = new StringBuilder();
while(loop){
int pictures = Integer.parseInt(br.readLine());
if(pictures == 0){
break;
}
int max = (int) Math.ceil(Math.sqrt(pictures));
int min = (int) Math.floor(Math.sqrt(pictures));
if(pictures % max == 0){
x = max;
y = pictures / max;
}
else if(pictures % min == 0){
x = min;
y = pictures / min;
}
int perimeter = ((x+y) / 2) * 4;
if(x < y){
result.append("Minimum perimeter is " + perimeter + " with dimensions " + x + " x " + y);
}else if(y < x){
result.append("Minimum perimeter is " + perimeter + " with dimensions " + y + " x " + x);
}else{
result.append("Minimum perimeter is " + perimeter + " with dimensions " + y + " x " + x);
}
System.out.println(result);
result.setLength(0);
}
}
}
但是当它打印到控制台时会导致:
100
15
195
0Minimum perimeter is 40 with dimensions 10 x 10 //Why is my output on the same line as my input?
Minimum perimeter is 16 with dimensions 3 x 5
Minimum perimeter is 56 with dimensions 13 x 15
请帮忙,我是初学者,我在基本输入输出方面遇到问题,谢谢!
【问题讨论】:
-
这4个数字从何而来?您是否可能将它们粘贴,没有最后的行终止符,所以所有4 个数字都在控制台窗口中在 Java 程序完成第一个
br.readLine()调用之前?然后程序就坐在那里等待第 4 行输入,所以当你按 Enter 之后 程序已经打印了 3 行输出,程序终于结束了吗?如果是这样,请确保在剪贴板中有最后一行终止符,如果您不希望控制台看起来像那样。或者手动输入数字,所以它会打印输出 as 输入。 -
是的,谢谢,因为当我粘贴时,我没有在 0 下粘贴额外的行。我在 dmoj 判断中运行了代码,它说我完成了问题,但它让我接受了 40/ 100。你必须得到 100/100 才能完成,所以我真的很困惑。
-
wait nvm 我的代码是错的,哈哈