Java: массив с циклом - PullRequest
       19

Java: массив с циклом

18 голосов
/ 07 октября 2011

Мне нужно создать массив из 100 чисел (1-100), а затем рассчитать, сколько всего это будет (1 + 2 + 3 + 4 + .. + 100 = сумма).

IЯ не хочу вводить эти числа в массивы вручную, 100 мест займет некоторое время и будет стоить больше кода.

Я думаю, что-то вроде использования переменной ++ до 100, а затем вычислить сумму всего этого.Не уверен, как именно это будет написано.Но важно то, что он находится в массивах, поэтому я могу позже сказать: «Сколько стоит массив 55», и я могу легко это увидеть.

Ответы [ 9 ]

41 голосов
/ 07 октября 2011

Вот как:

// Create an array with room for 100 integers
int[] nums = new int[100];

// Fill it with numbers using a for-loop
for (int i = 0; i < nums.length; i++)
    nums[i] = i + 1;  // +1 since we want 1-100 and not 0-99

// Compute sum
int sum = 0;
for (int n : nums)
    sum += n;

// Print the result (5050)
System.out.println(sum);
9 голосов
/ 07 октября 2011

Если все, что вы хотите сделать, это вычислить сумму 1,2,3 ... n, то вы можете использовать:

 int sum = (n * (n + 1)) / 2;
6 голосов
/ 07 октября 2011
int count = 100;
int total = 0;
int[] numbers = new int[count];
for (int i=0; count>i; i++) {
    numbers[i] = i+1;
    total += i+1;
}
// done
4 голосов
/ 07 октября 2011

Я не уверен, в какой структуре вы хотите получить свой результирующий массив, но следующий код сделает то, о чем я думаю вы просите:

int sum = 0;
int[] results = new int[100];
for (int i = 0; i < 100; i++) {
  sum += (i+1);
  results[i] = sum;
}

Дает ваммассив суммы в каждой точке цикла [1, 3, 6, 10...]

2 голосов
/ 07 октября 2011

Для заполнения массива:

int[] numbers = new int[100];
for (int i = 0; i < 100; i++) {
    numbers[i] = i+1;
}

, а затем для его суммирования:

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

или вкратце, если вы хотите сумму от 1 до n :

( n ( n +1)) / 2

1 голос
/ 25 августа 2012

на самом деле это сумма арифметической прогрессии с общей разницей, равной 1. Так что это частный случай суммы натуральных чисел.Это легко сделать с помощью одной строки кода.

int i = 100;
// Implement the fomrulae n*(n+1)/2
int sum = (i*(i+1))/2;
System.out.println(sum);
1 голос
/ 07 октября 2011

Если ваш массив чисел всегда начинается с 1 и заканчивается X, тогда вы можете использовать следующую формулу: сумма = x * (x + 1) / 2

от 1 до 100, сумма будет100 * 101/2 = 5050

0 голосов
/ 05 ноября 2017

Массив объявил без инициализации значений, и если вы хотите вставить значения, повторяя цикл, этот код будет работать.

Public Class Program
{

public static void main(String args[])

{
 //Array Intialization
 int my[] = new int[6];

 for(int i=0;i<=5;i++)

{

//Storing array values in array
my[i]= i;

//Printing array values

System.out.println(my[i]);

}

}

}
0 голосов
/ 07 октября 2011

int [] nums = new int [100];

int sum = 0;

// Заполнить его числами, используя цикл for for (int i = 0; i

{ 
     nums[i] = i + 1;
    sum += n;
}

System.out.println (сумма);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...