Java方法求任意数量整数的和

9
我需要编写一个Java方法sumAll(),它接受任意数量的整数并返回它们的总和。
sumAll(1,2,3) returns 6
sumAll() returns 0
sumAll(20) returns 20

我不知道该怎么做。
7个回答

20
如果您使用的是Java8,您可以使用IntStream:
int[] listOfNumbers = {5,4,13,7,7,8,9,10,5,92,11,3,4,2,1};
System.out.println(IntStream.of(listOfNumbers).sum());

结果:181

只需1行代码即可对数组进行求和。


15

你需要:

public int sumAll(int...numbers){

    int result = 0;
    for(int i = 0 ; i < numbers.length; i++) {
        result += numbers[i];
    } 
    return result;
}

然后调用该方法,并提供所需的整数值:

int result = sumAll(1,4,6,3,5,393,4,5);//.....
System.out.println(result);

谢谢!我不得不使用public static int sumAll。 - browngirl
我们能否在O(n)的时间内完成这个任务? - Tushar Banne

9
public int sumAll(int... nums) { //var-args to let the caller pass an arbitrary number of int
    int sum = 0; //start with 0
    for(int n : nums) { //this won't execute if no argument is passed
        sum += n; // this will repeat for all the arguments
    }
    return sum; //return the sum
} 

谢谢。我更喜欢使用其他的for循环符号。 - browngirl

2
使用 var args
public long sum(int... numbers){
      if(numbers == null){ return 0L;}
      long result = 0L;
      for(int number: numbers){
         result += number;
      }
      return result;   
}

那么如果总和超出了整数值呢?;-) - Juned Ahsan
结果的类型为long,操作者可以根据自己的情况处理数据类型。 - jmj
谢谢。返回类型必须是int。 (int... numbers)表示法适用于其他类型,如long double甚至是String吗? - browngirl
是的,它有效,请查看答案中的链接以获取详细描述。 - jmj

1
import java.util.Scanner;

public class SumAll {
    public static void sumAll(int arr[]) {//initialize method return sum
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        System.out.println("Sum is : " + sum);
    }

    public static void main(String[] args) {
        int num;
        Scanner input = new Scanner(System.in);//create scanner object 
        System.out.print("How many # you want to add : ");
        num = input.nextInt();//return num from keyboard
        int[] arr2 = new int[num];
        for (int i = 0; i < arr2.length; i++) {
            System.out.print("Enter Num" + (i + 1) + ": ");
            arr2[i] = input.nextInt();
        }
        sumAll(arr2);
    }

}

0
 public static void main(String args[])
 {
 System.out.println(SumofAll(12,13,14,15));//Insert your number here.
   {
      public static int SumofAll(int...sum)//Call this method in main method.
          int total=0;//Declare a variable which will hold the total value.
            for(int x:sum)
          {
           total+=sum;
           }
  return total;//And return the total variable.
    }
 }

0

假设您有一个带有值和数组长度的数组:arrayVal [i]arrayLength

int sum = 0;
for (int i = 0; i < arrayLength; i++) {
    sum += arrayVal[i];
}

System.out.println("the sum is" + sum);

希望这能有所帮助。


考虑添加方法签名以提高答案质量。 - Alexey Malev
你不需要一个变量来表示数组的长度,因为这个值已经在数组中了。 - Lajos Arpad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接