[英]size() is printing multiple times
我試圖弄清楚為什么 arr.size() 打印多次(與大小相同的數字)。
我應該取一個數組和 state,精確到小數點后 6 位,數組的哪個部分是正數、負數或零。 但是,我似乎無法通過多行打印。
class Result {
public static void plusMinus(List<Integer> arr) {
int plus = 0;
int minus = 0;
int zero = 0;
for (int i = 0; i < arr.size(); ++i) {
if (i == 0) {
zero++;
} else if (i < 0) {
minus++;
} else if (i > 0) {
plus++;
}
double plusPortion = plus / arr.size();
double minusPortion = minus / arr.size();
double zeroPortion = zero / arr.size();
System.out.println(arr.size());
//System.out.println(plusPortion);
//System.out.println(minusPortion);
//System.out.println(zeroPortion);
}
}
}
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bufferedReader.readLine().trim());
List<Integer> arr = Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
.map(Integer::parseInt)
.collect(toList());
Result.plusMinus(arr);
bufferedReader.close();
}
}
解決方案 class 作為挑戰的一部分提供。
將尺寸打印和部分計算移到循環之外,如下所示:
public static void plusMinus(List<Integer> arr) {
int plus = 0;
int minus = 0;
int zero = 0;
for (int i = 0; i < arr.size(); ++i) {
if (i == 0) {
zero++;
} else if (i < 0) {
minus++;
} else if (i > 0) {
plus++;
}
}
//calculate portions
double plusPortion = plus / arr.size();
double minusPortion = minus / arr.size();
double zeroPortion = zero / arr.size();
//log results
System.out.println("Array size:" + arr.size());
//System.out.println(plusPortion);
//System.out.println(minusPortion);
//System.out.println(zeroPortion);
}
您需要在 for 循環中進行“計算”,然后打印結果。 在您發布的代碼中,您正在為列表的每個步驟/元素打印結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.