Java初学者在数组中前进求和
我的程序应该获取一个提供的数组并创建一个新数组,其中每个元素都是原始数组中先前元素的总和。例如,新数组中的元素1是原始数组中的元素1。新数组中的元素2是原始数组中元素1和元素2的和。新数组中的元素3是原始数组中元素1、2和3的总和。这是我写的,但我知道它是不完整的。请导游Java初学者在数组中前进求和,java,prefix,Java,Prefix,我的程序应该获取一个提供的数组并创建一个新数组,其中每个元素都是原始数组中先前元素的总和。例如,新数组中的元素1是原始数组中的元素1。新数组中的元素2是原始数组中元素1和元素2的和。新数组中的元素3是原始数组中元素1、2和3的总和。这是我写的,但我知道它是不完整的。请导游 public class PrefixSum { public static void main(String[] args) { int[] array = new int[]{0,5
public class PrefixSum
{
public static void main(String[] args)
{
int[] array = new int[]{0,5,1,-3,2,0,4};
int[] newArray = new int[7];
int x = 0;
for(int i = 0; i < array.length; i++)
{
x = array[i];
x = x + i;
}
newArray[0] = 0;
System.out.println(" " + newArray[x]);
}
}
公共类前缀
{
公共静态void main(字符串[]args)
{
int[]数组=新的int[]{0,5,1,-3,2,0,4};
int[]newArray=newint[7];
int x=0;
for(int i=0;i
您可以调试
此代码以了解更改
public static void main(String[] args)
{
int[] array = new int[]{0,5,1,-3,2,0,4};
int[] newArray = new int[7];
int x = 0;
for(int i = 0; i < array.length; i++)
{
x += array[i];
newArray[i] = x;
}
}
publicstaticvoidmain(字符串[]args)
{
int[]数组=新的int[]{0,5,1,-3,2,0,4};
int[]newArray=newint[7];
int x=0;
for(int i=0;i
您可以调试
此代码以了解更改
public static void main(String[] args)
{
int[] array = new int[]{0,5,1,-3,2,0,4};
int[] newArray = new int[7];
int x = 0;
for(int i = 0; i < array.length; i++)
{
x += array[i];
newArray[i] = x;
}
}
publicstaticvoidmain(字符串[]args)
{
int[]数组=新的int[]{0,5,1,-3,2,0,4};
int[]newArray=newint[7];
int x=0;
for(int i=0;i
公共静态void main(字符串[]args)
{
int[]数组=新的int[]{0,5,1,-3,2,0,4};
int[]newArray=newint[7];
整数和=0;
for(int i=0;i
公共静态void main(字符串[]args)
{
int[]数组=新的int[]{0,5,1,-3,2,0,4};
int[]newArray=newint[7];
整数和=0;
for(int i=0;i
您可以使用变量runningTotal
来保持运行总数的计数,如下所示:
import java.util.Arrays;
class Main {
public static void main(String[] args) {
int[] originalArray = new int[]{0,5,1,-3,2,0,4};
int[] sumArray = new int[originalArray.length];
int runningTotal = 0;
for(int i = 0; i < originalArray.length; i++){
runningTotal += originalArray[i];
sumArray[i] = runningTotal;
}
System.out.println("The originalArray is: " + Arrays.toString(originalArray));
System.out.println("The sumArray is: " + Arrays.toString(sumArray));
}
}
试试看您可以使用变量
runningTotal
来记录运行总数,如下所示:
import java.util.Arrays;
class Main {
public static void main(String[] args) {
int[] originalArray = new int[]{0,5,1,-3,2,0,4};
int[] sumArray = new int[originalArray.length];
int runningTotal = 0;
for(int i = 0; i < originalArray.length; i++){
runningTotal += originalArray[i];
sumArray[i] = runningTotal;
}
System.out.println("The originalArray is: " + Arrays.toString(originalArray));
System.out.println("The sumArray is: " + Arrays.toString(sumArray));
}
}
试试看
试试看
试试看。x应该是什么?为什么要求一个值和一个索引的和?你不能用
newArray
做任何事情。你需要花点精力来解决这个问题。x
应该是什么?为什么要求一个值和一个索引的和?你不能用newArray
做任何事情。您需要投入一些精力来解决这个问题。请解释一下您的代码。仅仅提供一个有效的例子是不好的。@mkabanen几乎没有什么细节需要解释,总是这样。对于初学者来说,理解如何解决这个问题是非常重要的。所以你应该解释代码背后的逻辑。OP有一个不完整的代码,他/她所需要的只是代码的其余部分,我看不到可能的细节来添加到我的答案中。顺便说一句,你可以随时投反对票@请解释一下你的代码。仅仅提供一个有效的例子是不好的。@mkabanen几乎没有什么细节需要解释,总是这样。对于初学者来说,理解如何解决这个问题是非常重要的。所以你应该解释代码背后的逻辑。OP有一个不完整的代码,他/她所需要的只是代码的其余部分,我看不到可能的细节来添加到我的答案中。顺便说一句,你可以随时投反对票@mkabanen。。。!!精心设计。。。!!
List<Integer> sums = new ArrayList<>();
Stream.of(0, 5, 1, -3, 2, 0, 4).reduce((left, right) -> {
sums.add(left + right);
return left + right;
});
[0, 5, 6, 3, 5, 5, 9]