Я новичок в программировании, поэтому у меня могут возникнуть проблемы с некоторыми ключевыми терминами. Я пытаюсь написать программу, в которой пользователь вводит минимальное и максимальное число, и он генерирует случайное число. После этого я хочу узнать, сколько четных и нечетных чисел содержится в случайном сгенерированном числе. Мне удалось успешно завершить первую часть, но у меня возникают проблемы с определением количества четных и нечетных чисел в случайном сгенерированном числе.
ВЫБОР ОБРАЗЦА: Пример: Случайное сгенерированное число:478 099 # четных цифр: 2 # нечетных цифр: 3
Я попытался создать локальные переменные, которые не работали, я хочу использовать оператор переключения регистра, но у меня возникли проблемы. На данный момент я использовал цикл for, но я хочу использовать регистр переключателя.
public static void main(String[] args)
{
DecimalFormat fmt = new DecimalFormat("###,###,###,###,###");
Scanner scanner = new Scanner(System.in);
int max = -1;
int min = 0;
int [] diffvalue = new int [1];
System.out.println("Enter in a maximum value: ");
max = scanner.nextInt();
System.out.println("Enter in a minimum value: ");
min = scanner.nextInt();
if (min > max)
{
System.out.println("Your minimum value is greater then your
maximum value.");
}
for (int i = 0; i < diffvalue.length; i++)
{
diffvalue[i] = (int)(Math.random()*(max-min)+min);
}
System.out.println("Random Value: ");
for(int i = 0; i < diffvalue.length; i++)
{
System.out.println(fmt.format(diffvalue[i]));
}
}
int l = diffvalue[i];
while (l > 0)
{
switch ((l % 10) % 2)
{
case 1:
odd++;
break;
default:
even++;
}
l /= 10;
}
}
Я не могу посмотреть на целое число отдельно.
**EDIT 1**
import java.util.Scanner;
import java.text.DecimalFormat;
public class MyClass
{
public static void main(String args[])
{
DecimalFormat fmt = new DecimalFormat("###,###,###,###,###");
Scanner scanner = new Scanner(System.in);
int max = -1;
int min = 0;
int [] diffvalue = new int [1];
System.out.println("Enter in a maximum value: ");
max = scanner.nextInt();
System.out.println("Enter in a minimum value: ");
min = scanner.nextInt();
int even = 0; int odd = 0;
if (min > max)
{
System.out.println("Your minimum value is greater then your
maximum value.");
}
for (int i = 0; i < diffvalue.length; i++)
{
diffvalue[i] = (int)(Math.random()*(max-min)+min);
}
System.out.println("Random Value: ");
for(int i = 0; i < diffvalue.length; i++)
{
System.out.println(fmt.format(diffvalue[i]));
}
for(int i = 0; i < diffvalue.length; i++)
{
int l = diffvalue[i];
while (l > 0)
{
switch ((l % 10) % 2)
{
case 1:
odd++;
break;
default:
even++;
}
l /= 10;
}
System.out.println("Even:" + even);
System.out.println("Odd: " + odd);
}
}
}
Я получил его вобнаружение четных и нечетных чисел теперь мне интересно узнать, есть ли способ сделать это без наличия двух переменных (нечетных, четных).