第一输入:数组大小:5
第二输入:0 -2 4 0 6
产量:2
下面是我尝试过的方法。它也是将零之前的数字相加:
我的代码的输出:
数组大小:10
元素:6 19 0 -3 4 8 0 -6 9 59
我的产出:25 9
import java.util.Scanner;
import java.util.Vector;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int arr[] = new int[n];
Vector<Integer> A = new Vector<Integer>();
int sum = 0;
for(int i=0; i<arr.length; i++){
arr[i] = in.nextInt();
}
for(int i = 0; i < arr.length; i++)
{
if (arr[i] == 0)
{
i++;
break;
}
}
for(int i=0; i < arr.length; i++)
{
if (arr[i] == 0)
{
A.add(sum);
sum = 0;
}
else
{
sum += arr[i];
}
}
for(int j = 0; j < A.size(); j++)
{
System.out.print(A.get(j) + " ");
}
}
}
4条答案
按热度按时间vmdwslir1#
你不需要两个循环,一个寻找第一个零,然后求和。
lnxxn5zx2#
dffbzjpn3#
以上方法应该有效
jmp7cifd4#