JAVA
1) Дана последовательность N целых чисел. Найти сумму простых чисел.
2) Дана последовательность из N целых чисел. Верно ли, что последовательность является возрастающей?
3) Дан массив целых чисел. Заменить отрицательные элементы на сумму индексов двузначных элементов массива.
Пример:
Массив = {1, 22, 33, 44, 5, -5, -3, 23, -7}
Сумма индексов двузначных элементов массива = 1+2+3+7 = 13
Массив после замены отрицательных на сумму = {1, 22, 33, 44, 5, 13, 13, 23, 13}
5) Отвалидировать доску судоку.
Требования:
Объявлена доска 9x9, необходимо отвалидировать в соответствии с правилами:
1. Каждая строка должна содержать цифры 1-9 без повторения.
2. Каждая колонка должна содержать цифры 1-9 без повторения.
3. Каждый подблок 3x3 должен содержать цифры 1-9 без повторения.
Ответы на вопрос
1. Сумма простых чисел
Простое число — это натуральное число больше 1, которое делится только на 1 и на само себя.
class Main {
static boolean isPrime(int x) {
if (x < 2) return false;
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) return false;
}
return true;
}
public static void main(String[] args) {
int[] a = {2, 4, 5, 7, 10};
int sum = 0;
for (int x : a) {
if (isPrime(x)) sum += x;
}
System.out.println(sum);
}
}
2. Проверка, является ли последовательность возрастающей
Последовательность возрастающая, если каждый следующий элемент больше предыдущего.
int[] a = {1, 3, 5, 8};
boolean increasing = true;
for (int i = 1; i < a.length; i++) {
if (a[i] <= a[i - 1]) {
increasing = false;
break;
}
}
System.out.println(increasing ? "Да" : "Нет");
3. Замена отрицательных элементов
Индексы в Java начинаются с 0. Двузначные числа — от 10 до 99 и от -99 до -10.
int[] a = {1, 22, 33, 44, 5, -5, -3, 23, -7};
int sumIndexes = 0;
for (int i = 0; i < a.length; i++) {
if (Math.abs(a[i]) >= 10 && Math.abs(a[i]) <= 99) {
sumIndexes += i;
}
}
for (int i = 0; i < a.length; i++) {
if (a[i] < 0) {
a[i] = sumIndexes;
}
}
5. Валидация доски судоку
Нужно проверить строки, столбцы и квадраты 3x3: в каждом наборе должны быть цифры от 1 до 9 без повторов.
static boolean checkSet(int[] nums) {
boolean[] used = new boolean[10];
for (int x : nums) {
if (x < 1 || x > 9 || used[x]) return false;
used[x] = true;
}
return true;
}
static boolean isValidSudoku(int[][] board) {
for (int i = 0; i < 9; i++) {
int[] row = new int[9];
int[] col = new int[9];
for (int j = 0; j < 9; j++) {
row[j] = board[i][j];
col[j] = board[j][i];
}
if (!checkSet(row) || !checkSet(col)) return false;
}
for (int r = 0; r < 9; r += 3) {
for (int c = 0; c < 9; c += 3) {
int[] block = new int[9];
int k = 0;
for (int i = r; i < r + 3; i++) {
for (int j = c; j < c + 3; j++) {
block[k++] = board[i][j];
}
}
if (!checkSet(block)) return false;
}
}
return true;
}
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

