?

Log in

No account? Create an account

Previous Entry Share Next Entry
Моё решение Java-задачи Блинова: Ввести n целых чисел с консоли, получив таким образом массив...
Максим, Maksim, Garmash, Европейская, Гармаш
maksim_garmash

Задача:

"Ввести n целых чисел с консоли, получив таким образом массив. Далее разработать методы и поочередно вызвать их для выполнения следующих алгоритмов:

- вывести на консоль самое короткое и самое длинное число, а также их длину. если чисел с одинаковой длиной несколько - вывести первое по очереди
- вывести на консоль те числа, длина которых меньше (больше) средней, а также длину
- вывести на консоль количество чисел, содержащих только четные цифры
- вывести на консоль числа, которые делятся на 3 или на 5
- вывести на консоль простые числа (делятся без остатка только на 1 и само на себя)
- вывести на консоль первое число, цифры в котором идут в строгом порядке возрастания

- вывести на консоль первое число-палиндром (одинаково читающееся в обоих направлениях. Например, число 404)".

Мой вариант решения:

"package by.academy.java.jd1.mgarmash.pak1_1;

// (C) Maksim Garmash, 2018

import java.util.Scanner;
public class Array {
public static void main(String[] args) {
System.out.println("Введите число - как много переменных вы хотите добавить в массив и нажмите <Enter>:");
Scanner scan = new Scanner(System.in);
int chisloNaVhode = scan.nextInt();
int massiv[] = new int[chisloNaVhode];
int numbers[] = new int[chisloNaVhode];
System.out.println();
System.out.println("Сейчас введите ваши числа через пробел и нажмите <Enter>:");
for (int i = 0; i < chisloNaVhode; i++) {
massiv[i] = scan.nextInt();
numbers[i] = (massiv[i] + "").length();
}
scan.close();
numbersLength(massiv, numbers, chisloNaVhode);
average(massiv, numbers, chisloNaVhode);
onlyEvens(massiv);
threeFive(massiv, chisloNaVhode);
primes(massiv, chisloNaVhode);
increasingNumbers(massiv, numbers, chisloNaVhode);
palindrome(massiv, numbers, chisloNaVhode);
}
private static void numbersLength(int[] massiv, int[] numbers, int chisloNaVhode) {
int max = numbers[0], min = numbers[0], big = 0, small = 0;
for (int i = 1; i < chisloNaVhode; i++) {
int j = numbers[i];
if (min > j) {
min = j;
small = i;
} else {
if (max < j) {
max = j;
big = i;
}
}
}
System.out.println();
System.out.println("*********************************");
System.out.println();
System.out.println("Первое самое короткое число: " + massiv[small] + "." + " Его длина: " + min + ";");
System.out.println("Первое самое длинное число: " + massiv[big] + "." + " Его длина: " + max + ";");
System.out.println();
System.out.println("--------------------------------");
}
private static void average(int[] massiv, int[] numbers, int chisloNaVhode) {
float value = 0;
for (int i = 0; i < chisloNaVhode; i++) {
value = value + numbers[i];
}
value = value / chisloNaVhode;
System.out.println();
System.out.print("Числа, длина которых меньше средней: ");
System.out.println();
for (int i = 0; i < chisloNaVhode; i++) {
if (value > numbers[i]) {
System.out.println("Число: " + massiv[i] + "." + " Его длина: " + numbers[i] + ";");
System.out.println();
}
}
System.out.print("Числа, длина которых больше средней: ");
System.out.println();
for (int i = 0; i < chisloNaVhode; i++) {
if (value < numbers[i]) {
System.out.println("Число: " + massiv[i] + "." + " Его длина: " + numbers[i] + ";");
System.out.println();
}
}
}
private static void onlyEvens(int[] massiv) {
int value = 0;
for (int i = 0; i < massiv.length; i++) {
int element = massiv[i];
if ((element % 2 == 0) && (element >= 22)) {
int c = 0;
int cW = 0;
while (element != 0) {
if (element % 2 == 0) {
c = c + 1;
}
element = element / 10;
cW = cW + 1;
}
if (c == cW) {
value = value + 1;
}
}
}
System.out.println("--------------------------------");
System.out.println();
System.out.println("Количество чисел, содержащих только четные цифры: " + value + ";");
System.out.println();
System.out.println("--------------------------------");
}
private static void threeFive(int[] massiv, int chisloNaVhode) {
for (int i = 0; i < chisloNaVhode; i++) {
if ((massiv[i] % 3 == 0) || (massiv[i] % 5 == 0)) {
System.out.println();
System.out.print((i + 1) + " -е число, которое делится на 3 или на 5: ");
System.out.print(massiv[i] + "; ");
System.out.println();
} else {
if ((!(massiv[i] % 3 == 0)) || (!(massiv[i] % 5 == 0))) {
System.out.println();
System.out.print((i + 1) + " -е число не делится на 3 или на 5;");
System.out.println();
}
}
}
System.out.println();
System.out.println("--------------------------------");
}
private static void primes(int[] massiv, int chisloNaVhode) {
int value;
boolean b = false;
for (int i = 0; i < chisloNaVhode; i++) {
if ((massiv[i] != 1) && ((massiv[i] != 2))) {
for (value = 2; value < massiv[i]; value++) {
if (massiv[i] % value != 0) {
b = true;
} else {
b = false;
break;
}
}
} else {
b = true;
}
if (b) {
System.out.println();
System.out.println("Число " + massiv[i] + " является простым числом;");
b = false;
} else {
System.out.println();
System.out.println("Число " + massiv[i] + " не является простым числом;");
}
}
System.out.println();
System.out.println("--------------------------------");
System.out.println();
}
private static void increasingNumbers(int[] massiv, int[] numbers, int chisloNaVhode) {
int p;
boolean b;
for (int i = 0; i < chisloNaVhode; i++) {
int k = 0;
b = false;
int[] array1 = new int[numbers[i]];
p = massiv[i];
while (p != 0) {
array1[k] = p % 10;
p = p / 10;
if (array1[k] > p % 10) {
b = true;
} else {
b = false;
break;
}
k++;
}
if (b == true) {
System.out.println("Число, цифры в котором идут в строгом порядке возрастания: " + massiv[i] + ";");
System.out.println();
} else {
System.out.println("В " + (i + 1)
+ " ячейке массива число, цифры в котором идут в строгом порядке возрастания - не найдено;");
System.out.println();
}
}
System.out.println("--------------------------------");
}
private static void palindrome(int[] massiv, int[] numbers, int chisloNaVhode) {
int j;
boolean b = false;
for (int i = 0; i < chisloNaVhode; i++) {
int k = 0;
j = massiv[i];
int[] array1 = new int[numbers[i]];
while (j != 0) {
array1[k] = j % 10;
j = j / 10;
k++;
}
j = array1.length - 1;
for (k = 0; k < j; k++) {
if (array1[k] == array1[j]) {
b = true;
} else {
b = false;
break;
}
j--;
}
if (b) {
System.out.println();
System.out.println("Первое число-палиндром: " + massiv[i] + ".");
System.out.println();
break;
}
}
if (b == false) {
System.out.println();
System.out.println("Число-палиндром не найдено.");
System.out.println();
}
}
}

// end of Russian version"


Вывод на консоль (если, например, в массиве будет 6 ячеек и пользователь введёт числа: 12, 10, 444, 33, 50, 11):

"Введите число - как много переменных вы хотите добавить в массив и нажмите :

6
Сейчас введите ваши числа через пробел и нажмите <Enter>:
12 10 444 33 50 11
*********************************
Первое самое короткое число: 12. Его длина: 2;
Первое самое длинное число: 444. Его длина: 3;
--------------------------------
Числа, длина которых меньше средней:
Число: 12. Его длина: 2;
Число: 10. Его длина: 2;
Число: 33. Его длина: 2;
Число: 50. Его длина: 2;
Число: 11. Его длина: 2;
Числа, длина которых больше средней:
Число: 444. Его длина: 3;
--------------------------------
Количество чисел, содержащих только четные цифры: 1;
--------------------------------
1 -е число, которое делится на 3 или на 5: 12;
2 -е число, которое делится на 3 или на 5: 10;
3 -е число, которое делится на 3 или на 5: 444;
4 -е число, которое делится на 3 или на 5: 33;
5 -е число, которое делится на 3 или на 5: 50;
6 -е число не делится на 3 или на 5;
--------------------------------
Число 12 не является простым числом;
Число 10 не является простым числом;
Число 444 не является простым числом;
Число 33 не является простым числом;
Число 50 не является простым числом;
Число 11 является простым числом;
--------------------------------
Число, цифры в котором идут в строгом порядке возрастания: 12;
В 2 ячейке массива число, цифры в котором идут в строгом порядке возрастания - не найдено;
В 3 ячейке массива число, цифры в котором идут в строгом порядке возрастания - не найдено;
В 4 ячейке массива число, цифры в котором идут в строгом порядке возрастания - не найдено;
В 5 ячейке массива число, цифры в котором идут в строгом порядке возрастания - не найдено;
В 6 ячейке массива число, цифры в котором идут в строгом порядке возрастания - не найдено;
--------------------------------
Первое число-палиндром: 444.

"



Comments Disabled:

Comments have been disabled for this post.