Добрый день!
Задача:
Метод count класса For принимает длину возвращаемой последовательности в виде целого числа(int) и шаг последовательности также в виде целого числа(int), а возвращать строковое представление последовательности чисел, разделенное пробелами.
Последовательность это арифметическая прогрессия с первым членом ряда 0 и далее идут числа меняющиеся с заданным шагом.
Например, для аргументов (5,2), результат "0 2 4 6 8".
Для аргументов (1, 3), результат "0" - то есть 0 это первый член ряда с длиной ряда 1.
Для аргументов (7, 3), результат "0 3 6 9 12 15 18".
Максимальная длина ряда 10, шаг от минус 5 до 7.
Реализуйте код метода с помощью оператора for. Аналогично используйте StringBuilder для формирования выходной строки.
Возможное решение:
public class For {
String count(int length, int step) {
StringBuilder sb = new StringBuilder();
for (int i = 0,j=0; j<=10; i = step,j = j + step)
{sb.append(j +" ");
}
return sb.toString().trim();
}
};
Однако при проверке выдает ошибку:
Excepted: 0, 2, 4, 6, 8
Actual: 0, 2, 4, 6, 8, 10
Подскажите, пожалуйста, что необходимо добавить, чтобы результат получился верным.
comando
0 уровень
Оператор For
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2322530
15 ноября 2020, 15:44
длина максимальная 10, а может быть и 3, и 5
тут должно быть условие i < length (потому что ты повторяешь итерации пока не достигнута необходимая длина)
в твоем случае цикл работает, пока максимальный элемент в результате меньше либо равно 10. а это даже противоречит примеру.
для начала советую такие вещи на бумаге расписать, что как и зачем
0
comando
15 ноября 2020, 20:23
Внёс корректировки:
public class For {
String count(int length, int step) {
StringBuilder sb = new StringBuilder();
for ( int i = 0 , j = 0; i < length && step>=-5 && step <=7 && length>0 && length<=10; i += step ,j = j + step)
{
sb.append(j +" ");
}
return sb.toString().trim();
}
};
Excepted: 0, 2, 4, 6, 8
Actual: 0, 2, 4,
Не подскажите, что делаю неверно?
0
hidden #2322530
15 ноября 2020, 20:35
неверно это решать задачи за счёт других
0
comando
15 ноября 2020, 20:45
Я думал этот раздел создан для того, чтобы у новичков имелась возможность консультироваться с более опытными коллегами.
Я же не прошу полностью за меня код написать.
Если ахинея полная в коде, подскажите, если не сложно, в какую сторону двигаться, что почитать или похожие задачки посмотреть.
Я только учусь.
UPD: Разобрался, вопрос закрыт, спасибо.
+1