Цикл с нечетным порядком элементов а не результата элементов в java
Здравствуйте Есть такое условие.
a = 1, b = 5
for (x = a; x <= b; x = x + h)
Интервал равен от х_a до x_b нужно что бы складывались нечетные икcы в этом интервале (х1 + х3 + х5 + x_n - нечетный)
Например х1=2, х2=4, х3=6, x4=8, x5=12 (после равно это результат этой формулы x=x+h) , нужно сложить нечетные х1+х3+х5 , проверить сам порядок х а не его ответ. Ответ должен получиться если взять этот пример 20. (т.к. 2+6+12).
Надеюсь правильно объяснил. Спасибо всем уделившим внимание
Ответы (3 шт):
Что то такое думаю.
a = 1, b = 5
sum = 0
for (x = a; x <= b; x = x + h) {
if(((x-a)/h)%2 == 0) sum += x;
}
System.out.println(sum);
Не много изменил код. С суммированием понятно. Небольшая загвоздка с условием. Значит вам нужны нечётные причем считать вы начинаете с 1.
x-а даст вам сколько h вы добавили к х. Делим на h получаем множитель. Нужно проверить его на четность поскольку вы считаете с 1.
Ладно приведу и свой пример, то как я понял ваше условие.
a и b это промежуток, а h это шаг изменения x на промежутке.
И нужно найти сумму элементов на нечетных позициях.
int a = 0, b = 2, sum = 0;
double h = 0.5;
//Сам x (не порядок)
double x = h;
//i - порядок икса
//Увеличиваем порядок каждую итерацию на 1 и проверяем, чтобы он был нечетным
//А сам x увеличиваем каждую итерацию на нужный нам шаг h
for (int i = a; i <= b; i++, x += h) {
//Если порядок нечетный
if (i % 2 == 1)
sum += x;
}
System.out.println(sum);
Ответ программы: 1
0 1 2
0.5 1 1.5 => sum = 1
Мне кажется, что вопрос не совсем корректный. Вам нужно именно с теми двумя строчками кода что-то выкрутить? Если задача заключается в том, что дается какой-то интервал и нужно найти сумму всех его нечетных значений, то это можно решить с помощью потока данных.
int positionA = 1;
int positionB = 5;
int result =
IntStream
.range(positionA, positionB+1)
.filter(x -> x%2==1)
.sum();