2013-06-16 20 views

Trả lời

13

Bạn cần:

public int sumAll(int...numbers){ 

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

Sau đó gọi phương thức và cung cấp cho nó càng nhiều giá trị int như bạn cần:

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

Cảm ơn bạn! Tôi đã phải sử dụng công cộng static int sumAll – browngirl

+0

Chúng ta có thể làm điều này trong ít hơn O (n) thời gian? –

2

Sử dụng var args

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

Thiếu thứ gì đó '...' – user2246674

+0

Làm thế nào về var args? –

+0

Vì vậy, nếu tổng số tràn giá trị số nguyên ;-) –

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 
} 
+1

+1 cho vòng lặp sạch hơn. –

+0

Cảm ơn bạn. Tôi cảm thấy thoải mái hơn với các ký hiệu khác cho vòng lặp – browngirl

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

Bạn có thể làm, giả sử bạn có một mảng với giá trị và mảng chiều dài: arrayVal[i], arrayLength:

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

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

Tôi hy vọng điều này sẽ giúp.

+0

Cân nhắc thêm chữ ký phương thức để cải thiện chất lượng câu trả lời. –

+0

Bạn không cần biến cho chiều dài mảng, bạn có giá trị này trong mảng của mình. –

12

Nếu bạn sử dụng Java8 bạn có thể sử dụng 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()); 

Kết quả:

Chỉ cần 1 dòng mã mà sẽ tổng hợp mảng.

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); 
    } 

} 
Các vấn đề liên quan