Помогите пожалуйста разобраться, до этого момента в задачах в условиях if else когда я добавлял list.get(i), после этого я добавлял i++; чтобы for проходил данное слово но в этой задаче не нужно добавлять i++ после добавления list.get(i) + " " + list.get(i).
Или в этой же задаче мы добавили слово Три раза разве после кода multiply.add(list.get(i) + " " + list.get(i) + " " + list.get(i));
не должен быть i = i+2 чтобы for проходил это слово. Заранее спасибо за ответ.
for (int i = 0; i < list.size(); i++) {
if (list.get(i).length() % 2 == 0) {
multiply.add(list.get(i) + " " + list.get(i));
// Вот здесь я добавлял i++;
} else {
multiply.add(list.get(i) + " " + list.get(i) + " " + list.get(i));
// Вот здесь должен быть i = i + 2;
}
}
for (int i = 0; i < list.size(); i++) {
System.out.println(multiply.get(i));
}
JAmes
35 уровень
Помогите пожалуйста
Решен
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр Дорофеев Backend Developer в Ай-Теко Expert
7 мая 2019, 05:48
Как это читается без контекста:
до этого момента я добавлял 1
после этого я добавлял 2;
но в этой задаче не нужно добавлять 2 после добавления 1+1
Или в этой же задаче мы добавили слово
Три раза разве после кода 3
не должен быть 2 чтобы for проходил это слово
Учитесь формулировать вопросы так, чтобы Вас понимали люди без контекста задачи. Ну или задачу прикрепляйте.
0
JAmes
7 мая 2019, 06:06
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Меняем функциональность
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<String>();
while (true) {
String s = reader.readLine();
if (s.isEmpty()) break;
list.add(s);
}
ArrayList<String> multiply = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).length() % 2 == 0) {
multiply.add(list.get(i) + " " + list.get(i));
// Вот в этом месте i++;
} else {
multiply.add(list.get(i) + " " + list.get(i) + " " + list.get(i));
// Вот в этом месте i = i + 2;
}
}
for (int i = 0; i < list.size(); i++) {
System.out.println(multiply.get(i));
}
}
}
0
JAmes
7 мая 2019, 06:07
почему задача решается без добавления i??
0
JAmes
7 мая 2019, 06:16
multiply.add(list.get(i) + " " + list.get(i)); Добавит еще один индекс и след заходом цикл for снова встретит это введеное слово.Поэтому разве добавление i++ чтобы он прошел через это слово
не является правильным решением задачи???
0
Александр Дорофеев Backend Developer в Ай-Теко Expert
7 мая 2019, 06:24
Что делать должны эти циклы?
Во вводимых строках могут быть пробелы или цифры?
0
Александр Дорофеев Backend Developer в Ай-Теко Expert
7 мая 2019, 06:25
Непонятно, каков должен быть конечный результат. Умножение строк это непонятная операция.
0
JAmes
7 мая 2019, 06:33
Циклы должны Проверять если длина слова делится на 2 без остатка то добавить на его место два таких слова
если длина слова делится на 3 без остатка то на его место нужно поставить 3 таких же слова.
0
JAmes
7 мая 2019, 06:38решение
Я понял ответ мы в один индекс запихиваем 2 значения.
+2
Александр Дорофеев Backend Developer в Ай-Теко Expert
7 мая 2019, 06:39
Ааа... Так а зачем увеличивать i?
i определяет номер слова, пройти нужно все слова по очереди.
Вот тут for (int i = 0; i < list.size(); i++) i увеличивается после завершения очередной итерации цикла на 1 (i++).
Слово одно и то же в каждой итерации, следующее слово будет в следующей итерации.
+1
JAmes
7 мая 2019, 06:44
спасибо
0