2014-10-25 3 views
-5

Я не могу понять это ..Java (Сумма нечетных чисел и Compute Средняя)

//Modify the following to sum only the odd numbers from 1 to 100, and compute the average. (Hint: n is an odd number if n % 2 is not 0.) 
    sum=0; 
    for (int number = 1; number <= 100; ++number) { // for loop 
     sum += number;  // same as "sum = sum + number" 
    } 
    System.out.println(sum); 
+2

В комментарии говорится, что делать. – Radiodef

ответ

2

Вы должны проверить, если число нечетное и подсчитать, сколько шансов у вас найти.

int oddCount = 0; 
int sum = 0; 
for (int number = 1; number <= 100; ++number) { // for loop 
    if (number % 2 != 0) { 
    sum += number; 
    oddCount++; 
    } 
} 
System.out.println(sum/(double) oddCount) 

Или пропустить даже значение с чем-то вроде

int oddCount = 0; 
int sum = 0; 
for (int number = 1; number <= 100; number += 2) { // <-- skip the even values. 
    sum += number; 
    oddCount++; 
} 
System.out.println(sum/(double) oddCount) 
+0

+1 для 'number + = 2' – Thilo

0

Учитывая, что нечетные числа имеют остаток 1 при делении на 2, вам не нужно, если заявление:

int oddCount = 0, sum = 0; 
for (int n = 1; n <= 100; ++n) { // for loop 
    oddCount += n % 2; 
    sum += n * (n % 2); 
} 
System.out.println(sum/(double) oddCount) 

Фокус здесь в том, что n % 2 равен нулю для четных чисел, они не влияют на итоговые значения, но для нечетных чисел это 1, поэтому они подсчитывают.