Есть метод, который выводит нечетные числа от 1 до 100
public String printUnpared() {
for (d = 1; d <= 100; d++) {
if (d % 2 != 0) {
unpared[d] = d;
}
}
String stringUnpared = Arrays.toString(unpared);
return stringUnpared;
И получаю вывод
[0, 1, 0, 3, 0, 5, 0, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99]
Как вывести нечетные числа без нулей не используя ArrayList? Как начать массив с 1, а не с 0? Нужно вернуть через return, выводить через System.out.print нельзя.
Можно использовать ArrayList:
public String printUnpared() {
List<Integer> unpared = new ArrayList<Integer>();
for (d = 1; d <= 100; d+=2) {
unpaired.add(d);
}
String stringUnpared = Arrays.toString(unpared.toArray());
return stringUnpared;
}
Либо рассчитывать нечётное число отдельно от индекса:
for (i = 0, d = 1; d <= 100; i++, d+=2) {
unpaired[i] = d;
}
Есть несколько способов. Неизвестно только что именно вам нужно.
Например все складывать в строку и возвращать её:
StringBuilder builder = new StringBuilder();
for (int d = 1; d <= 100; d++) {
if (d % 2 != 0)
builder.append(d).append(" ");
}
return builder.toString();
Еще вариант в два цикла. Один раз придется пробежаться и узнать количество нечетных чисел. Создать массив размерностью этого количества и еще одним циклом туда всё запихать.
Если вы ни в коем случае не хотите использовать массив, напишите свой класс-генератор. Вот набросок:
public class Unpared
{
private static int i = -1;
private static int stop;
public Unpared(int start, int stop){
i = start -2;
this.stop = stop;
}
public int nextInt(){
if(i+=2 < stop){
return i;
} else throw new NoSuchElementException();
}
}
Оптимальное решение:
public static String printOdd (int max) {
int i = 1, a[] = new int[(max+1)/2];
for (;i<=max;i+=2)
a[(i-1)/2]=i;
return Arrays.toString(a);
}
Массив, если хотите:
public static int[] Odds (int max) {
int i = 1, a[] = new int[(max+1)/2];
for (;i<=max;i+=2)
a[(i-1)/2]=i;
return a;
}
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
После выполнения программы в IntelliJ IDEA в консоли появляется "Process finished with exit code -1"Вроде бы должно возвращать: "Process finished with exit code 0"
Недавно начал изучение java и android и решил написать приложениеЕсть некий метод loadData(List<Item> itemList);, который на вход принимает коллекцию