Задачі про масиви

1. Заповнити масив з 10 елементів нулями, крім першого і останнього елементів, які повинні бути рівні одиниці.
Відповідь:
public class TaskMas1 {
    public static void main(String[] args) {
        int[] a = new int[10];
        a[0] = a[9] = 1;
        for (int i = 1; i < 9; i++) {
            a[i] = 0;
        }
        System.out.println(Arrays.toString(a));
    }
}

2. Заповнити масив з 10 елементів нулями і одиницями, при цьому дані значення чергуються, починаючи з нуля.
Відповідь:
public class TaskMas2 {
    public static void main(String[] args) {
        int[] a = new int[10];
        for (int i = 0; i < 10; i++) {
            if (i % 2 == 0) {
                a[i] = 0;
            } else {
                a[i] = 1;
            }
            System.out.print(a[i] + " ");
        }
    }
}

3. Заповнити масив з 20 елесентів послідовними непарними числами, починаючи з одиниці.
Відповідь:
public class TaskMas3 {
    public static void main(String[] args) {
        int[] a = new int[20];
        for (int i = 0; i < a.length; i++) {
            a[i] = 2 * i + 1;
            System.out.print(a[i] + " ");
        }
    }
}

4. Сформувати масив з 20 елементів арифметичній прогресії з заданим першим елементом а1 і різницею d.
Відповідь:
import java.util.Scanner;

public class TaskMas4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Перший член арифметичної прогресії а1=");
        double a1 = sc.nextDouble();
        System.out.print("Різниця прогресії d=");
        double d = sc.nextDouble();
        double[] an = new double[20];
        System.out.printf("%.2f ", a1);
        for (int i = 1; i < an.length; i++) {
            an[i] = a1 + d;
            a1 = an[i];
            System.out.printf("%.2f ", an[i]);
        }
    }
}


5. Сформувати зростаючий масив з 15 парних чисел, який починається з 40.
Відповідь:
public class TaskMas5 {
    public static void main(String[] args) {
        int[] a = new int[15];
        for (int i = 0, k = 40; i < a.length; i++, k += 2) {
            a[i] = k;
            System.out.print(a[i] + " ");
        }
    }
}
6. Сформувати спадаючий масив з 15 чисел, які діляться на 3 і починаються з 99.
Відповідь:
public class TaskMas6 {
    public static void main(String[] args) {
        int[] a = new int[15];
        for (int i = 0, k = 99; i < a.length; i++, k -= 3) {
            a[i] = k;
            System.out.print(a[i] + " ");
        }
    }
}

7. Створити масив з n перших чисел Фібоначчі.
Відповідь:
import java.util.Scanner;

public class TaskMas7 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки чисел ви бажаєте побачити? ->");
        long[] f = new long[sc.nextInt()];
        if (f.length == 1) {
            System.out.println(0);
            System.exit(0);
        }
        if (f.length == 2) {
            System.out.println(0);
            System.out.println(1);
            System.exit(0);
        }
        long f1 = f[0] = 0;
        long f2 = f[1] = 1;
        for (int i = 2; i < f.length; i++) {
            f[i] = f2 + f1;
            f1 = f2;
            f2 = f[i];
        }
        for (int i = 0; i < f.length; i++) {
            System.out.println(f[i] + " ");
        }
    }
}


8. Заповнити масив заданої довжини різними простими числами.
Відповідь:
import java.util.Scanner;
import static java.lang.Math.pow;

public class TaskMas8 {
    static long count = 2;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки простих чисел ви бажаєте побачити ->");
        int n = sc.nextInt();
        long[] a = new long[n];
        a[0] = count;
        for (int i = 1; i < a.length; i++) {
            do {
                count++;
            } while (nextPrime(count));
            a[i] = count;
        }
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }

    }

    static boolean nextPrime(long x) {
        double y = pow(x, 0.5);
        long c;
        long n = 2;
        while (n <= y) {
            c = x % n;
            if (c == 0) {
                return true;
            }
            n++;
        }
        return false;
    }
}


9. Створити масив з 30 елементів, кожен елемент якого дорівнює квадрату свого номера.
Відповідь:
public class TaskMas9 {
    public static void main(String[] args) {
        int[] a = new int[30];
        for (int i = 0; i < a.length; i++) {
            a[i] = (i + 1) * (i + 1);
            System.out.print(a[i] + " ");
        }
    }
}
10. Створити масив 20 елементів, на парних місцях в якому стоять одиниці, а на непарних місцях - числа, рівні залишку від ділення свого номера на 7.
Відповідь:
public class TaskMas10 {
    public static void main(String[] args) {
        int[] a = new int[20];
        for (int i = 0; i < a.length; i++) {
            if (i % 2 == 0) {
                a[i] = i % 7;
            } else {
                a[i] = 1;
            }
            System.out.print(a[i] + " ");
        }
    }
}

11. Створити масив розміром n, який починається з 1 і однаково читається як зліва направо, так і справа наліво.
Відповідь:
import java.util.Arrays;
import java.util.Scanner;

public class TaskMas11 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Який розмір бажаєте отримати? ->");
        int n = sc.nextInt();
        int[] a = new int[n];
        if (n % 2 == 0) {
            for (int i = 0; i < n / 2; i++) {
                a[i] = a[n - i - 1] = i + 1;
            }
        } else {
            for (int i = 0; i <= n / 2; i++) {
                a[i] = a[n - i - 1] = i + 1;
            }
        }
        System.out.println(Arrays.toString(a));
    }
}


12. Сформувати масив з 20 випадкових чисел від 1 до 10, в якому рівно дві одиниці, які стоять на випадкових позиціях.
Відповідь:
import java.util.Random;

public class TaskMas12 {
    public static void main(String[] args) {
        int[] a = new int[20];
        Random random = new Random();
        int countOne = 0;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(10) + 1;
            if (a[i] == 1) {
                countOne++;
            }
            if ((i >= a.length - 2) & (countOne < 2)) {
                a[i] = 1;
                countOne++;
            }
            System.out.print(a[i] + " ");
        }
    }
}


13. Заповніть масив 20 елементів випадковим чином нулями і одиницями так, щоб кількість одиниць була більше кількості нулів. Виведіть на екран кількість нулів та одиниць.
Відповідь:
import java.util.Random;

public class TaskMas13 {
    public static void main(String[] args) {
        int countZero = 0;
        int countOne = 0;
        Random random = new Random();
        int[] a = new int[20];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(2);
            if (a[i] == 0) {
                countZero++;
            } else {
                countOne++;
            }
            if ((countZero >= countOne) && (a.length - i >= countZero - countOne)) {
                a[i] = 1;
                countOne++;
                countZero--;
            }
            System.out.print(a[i] + " ");
        }
        System.out.println("\nКількість одиниць: " + countOne);
        System.out.println("Кількість нулів: " + countZero);
    }
}

14. Сформувати масив з 20 випадкових цілих чисел від 0 до 9, в якому одиниць від 3 до 5 і двійок більше трійок.
Відповідь:
import java.util.Arrays;
import java.util.Random;

public class TaskMas14 {
    public static void main(String[] args) {
        Random random = new Random();
        int[] a = new int[20];
        int n = random.nextInt(3) + 3;
        int countTwo;
        int countThree;
        for (int i = 0; i < a.length; i++) {
            a[i] = -1;
        }
        // розставляємо випадков n одиниць
        for (int i = 0, index; i < n; i++) {
            do {
                index = random.nextInt(a.length);
            } while (a[index] == 1);
            a[index] = 1;
        }
        // генеруємо кількість 2 і 3, щоб кількість 2 > 3
        do {
            countTwo = random.nextInt(a.length - n + 1);
            countThree = random.nextInt(a.length - countTwo - n + 1);
        } while (countThree >= countTwo);
        // розставляємо випадков на пусті місця двійки
        for (int i = 0, index; i < countTwo; i++) {
            do {
                index = random.nextInt(a.length);
            } while ((a[index] == 1) || (a[index] == 2));
            a[index] = 2;
        }
        // розставляємо випадково на пусті місця трійки
        for (int i = 0, index; i < countThree; i++) {
            do {
                index = random.nextInt(a.length);
            } while ((a[index] == 1) || (a[index] == 2) || (a[index] == 3));
            a[index] = 3;
        }
        // розставляємо на вільні місця інші числа
        for (int i = 0, temp; i < a.length; i++) {
            if (a[i] == -1) {
                do {
                    temp = random.nextInt(10);
                } while ((temp == 1) || (temp == 2) || (temp == 3));
                a[i] = temp;
            } else {
                continue;
            }
        }
        System.out.println(Arrays.toString(a));
    }
}

15. Визначити, чи містить масив з 20 елементів, заповнений випадковими числами від 1 до 100, дане число x.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas15 {
    public static void main(String[] args) {
        int[] a = new int[20];
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        boolean flag = false;
        System.out.print("Яке число бажаєте превірити? ->");
        int x = sc.nextInt();
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(100) + 1;
            if (a[i] == x) {
                flag = true;
            }
        }
        System.out.println(Arrays.toString(a));
        if (flag) {
            System.out.println("Дане число присутнє в масиві");
        } else {
            System.out.println("Даного числа не має в масиві");
        }
    }
}


16. Визначити кількість парних чисел в масиві з 20 елементів, який заповнен випадковими числами від 1 до 100.
Відповідь:
import java.util.Arrays;
import java.util.Random;

public class TaskMas16 {
    public static void main(String[] args) {
        Random random = new Random();
        int count = 0;
        int[] a = new int[20];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(100) + 1;
            if (a[i] % 2 == 0) {
                count++;
            }
        }
        System.out.println(Arrays.toString(a));
        System.out.println("Кількість парних чисел " + count);
    }
}
17. Знайти кількість чисел в масиві з 20 елементів, заповненому випадковим чином, які діляться на 3, але не діляться на 7.
Відповідь:
import java.util.Arrays;
import java.util.Random;

public class TaskMas17 {
    public static void main(String[] args) {
        Random random = new Random();
        int[] a = new int[20];
        int count = 0;
        boolean flag = false;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(100) + 1;
            if (a[i] % 3 == 0 && a[i] % 7 != 0) {
                count++;
                flag = true;
            }
        }
        System.out.println(Arrays.toString(a));
        if (flag) {
            System.out.println("Кількість чисел, які діляться на 3 і не діляться на 7 ->" + count);
        } else {
            System.out.println("Числа, які задовольняють дану умову відсутні");
        }
    }
}

18. Визначте, яких чисел в масиві з 30 випадкових елементів більше: які діляться на перший елемент масиву або які діляться на останній елемент масиву.
Відповідь:
import java.util.Arrays;
import java.util.Random;

public class TaskMas18 {
    public static void main(String[] args) {
        Random random = new Random();
        int[] a = new int[30];
        int countFirst = 0;
        int countLast = 0;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(100) + 1;
        }
        for (int i = 1; i < a.length - 1; i++) {
            if (a[i] % a[0] == 0) {
                countFirst++;
            }
            if (a[i] % a[a.length - 1] == 0) {
                countLast++;
            }
        }
        System.out.println(Arrays.toString(a));
        System.out.println("На " + a[0] + " діляться " + countFirst + ", на "
                                          + a[a.length - 1] + " - " + countLast);
        if (countFirst > countLast) {
            System.out.println("Перших більше");
        } else if (countFirst < countLast) {
            System.out.println("Останніх більше");
        } else {
            System.out.println("Порівну");
        }
    }
}


19. В масиві з 10 елементів заповненого випадковими числами в межах [-10;10] знайти добуток та суму елементів.
Відповідь:
import java.util.Arrays;
import java.util.Random;

public class TaskMas19 {
    public static void main(String[] args) {
        Random random = new Random();
        int[] a = new int[10];
        int sum = 0;
        long compose = 1;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(21) - 10;
            compose *= a[i];
            sum += a[i];
        }
        System.out.println(Arrays.toString(a));
        System.out.println("Добуток елементів: " + compose + ". Сумма: " + sum);
    }
}

20. В масиві з 10 елементів заповненого випадковими числами в межах [-10;10] знайти суму парних елементів.
Відповідь:
import java.util.Arrays;
import java.util.Random;

public class TaskMas20 {
    public static void main(String[] args) {
        Random random = new Random();
        int[] a = new int[10];
        int sum = 0;

        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(21) - 10;
            if (a[i]%2==0){
                sum += a[i];
            }
        }
        System.out.println(Arrays.toString(a));
        System.out.println("Сумма парних: " + sum);
    }
}


21. В масиві з 10 елементів заповненого випадковими числами в межах [1;20] знайти суму непарних елементів, які меньше 11.
Відповідь:
public class TaskMas21 {
    public static void main(String[] args) {
        Random random = new Random();
        int[] a = new int[10];
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(20) + 1;
            if (a[i] % 2 == 1 && a[i] < 11) {
                sum += a[i];
            }
        }
        System.out.println(Arrays.toString(a));
        System.out.println("Сумма чисел: " + sum);
    }
}


22. Знайдіть суму елементів масиву, які розташовані до першого парного числа масиву. Якщо парних чисел в масиві немає, то знайти суму всіх чисел за винятком крайніх.
Відповідь:
import java.util.Arrays;
import java.util.Random;

public class TaskMas22 {
    public static void main(String[] args) {
        Random random = new Random();
        int[] a = new int[20];
        int sum = 0;
        boolean flag = false;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(20);
            if (a[i] % 2 == 0) {
                flag = true;
            }
        }
        System.out.println(Arrays.toString(a));
        if (flag) {
            for (int i = 0; (a[i] % 2 != 0) && (i < a.length); i++) {
                sum += a[i];
            }
            System.out.println("Сума до першого парного " + sum);
        } else {
            for (int i = 1; i < a.length - 1; i++) {
                sum += a[i];
            }
            System.out.println("Сума без першого і останнього " + sum);
        }
    }
}

23. Знайдіть суму чисел масиву, які стоять на парних місцях.
Відповідь:
import java.util.Arrays;
import java.util.Random;

public class TaskMas23 {
    public static void main(String[] args) {
        Random random = new Random();
        int[] a = new int[10];
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(20) + 1;
            if (i % 2 == 1) {
                sum += a[i];
            }
        }
        System.out.println(Arrays.toString(a));
        System.out.println("Сумма чисел: " + sum);
    }
}


24. Дан масив x з n елементів. Знайдіть x- x2 + x- ... - xn-1 + xn.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas24 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        int one = 1;
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(21);
            sum += one * a[i];
            one *= -1;
        }
        System.out.println(Arrays.toString(a));
        System.out.println("Сума " + sum);
    }
}


25. Дан масив x з n елементів. Знайдіть x1 xn+ x2xn-1 + x3xn-2+ ... - xn-1x2 + xnx1.
Відповідь:
public class TaskMas25 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];

        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(21) - 10;
        }
        for (int i = 0; i < a.length; i++) {
            sum += a[i] * a[a.length - i - 1];
        }
        System.out.println(Arrays.toString(a));
        System.out.println("Сума " + sum);
    }
}
26. Знайти найбільший елемент масиву.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas26 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        int max = -1000;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(21) - 10;
            if (a[i] > max) {
                max = a[i];
            }
        }
        System.out.println(Arrays.toString(a));
        System.out.println("Максимум " + max);
    }
}

27. Знайдіть суму найбільшого і найменшого елементів масиву.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas27 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(201) - 100;
        }
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println("Максимум " + a[a.length-1]+". Мінімальне "+a[0]+
                                           ". Їх сума "+(a[a.length-1]+a[0]));
    }
}

28. Знайдіть кількість елементів масиву, які відмінні від найбільшого елемента не більше ніж на 15%.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas28 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        int count = 0;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(201) - 100;
        }
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
        for (int i = a.length - 2; i >= 0; i--) {
            if ((double) a[a.length - 1] * 0.85 < a[i]) {
                count++;
            } else {
                break;
            }
        }
        System.out.println("Кількість " + count);
    }
}


29. Знайдіть найбільший парний елемент масиву.
Відповідь:
public class TaskMas29 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(201) - 100;
            if (a[i] % 2 == 0 && a[i] > max) {
                max = a[i];
            }
        }
        System.out.println(Arrays.toString(a));
        if (max == Integer.MIN_VALUE) {
            System.out.println("Максимальний парний елемент відсутній");
        } else {
            System.out.println("Максимальне парне " + max);
        }
    }
}

30. Серед елементів з непарними номерами знайдіть найбільший елемент масиву, який ділиться на 3.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas30 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(201) - 100;
            if (i % 2 == 0 && a[i] % 3 == 0 && a[i] > max) {
                max = a[i];
            }
        }
        System.out.println(Arrays.toString(a));
        if (max == Integer.MIN_VALUE) {
            System.out.println("Шуканий елемент відсутній");
        } else {
            System.out.println("Шуканий елемент " + max);
        }
    }
}

31. Дан масив і число N. Знайдіть два різних числа в масиві, сума яких найбільш близька до N.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

import static java.lang.Math.abs;

public class TaskMas31 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        System.out.print("Яке число потрібно знайти? ->");
        int n = sc.nextInt();
        if (a.length == 1) {
            System.out.println("Потрібно ще одне число");
        } else if (a.length == 2) {
            a[0]=random.nextInt(200) - 100;
            a[1]=random.nextInt(200) - 100;
            System.out.println("Шукані елменти: " + a[0] + ", " + a[1]);
        } else {
            for (int i = 0; i < a.length; i++) {
                a[i] = random.nextInt(200) - 100;
            }
            int x1 = 0;
            int x2 = 0;
            int dif = Integer.MAX_VALUE;
            int tempDif;
            for (int i = 0; i < a.length - 1; i++) {
                for (int j = i + 1; j < a.length; j++) {
                   // System.out.println("->" + a[i] + "; ->" + a[j] + " dif=" + abs(n - (a[i] + a[j])));
                    tempDif = abs(n - (a[i] + a[j]));
                    if (tempDif < dif) {
                        x1 = a[i];
                        x2 = a[j];
                        dif = tempDif;
                    }
                }
                if (dif == 0) {
                    break;
                }
            }
            System.out.println(Arrays.toString(a));
            System.out.println("Шукані елементи: " + x1 + "; " + x2);
        }
    }
}


32. Дан масив. Знайдіть два сусідні елементи, сума яких мінімальна.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas32 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        int min = Integer.MAX_VALUE;
        int x1 = 0;
        int tempMin;
        if (a.length == 1) {
            System.out.println("Потрібно ще одне число");
        } else if (a.length == 2) {
            a[0] = random.nextInt(200) - 100;
            a[1] = random.nextInt(200) - 100;
            System.out.println("Шукані елменти: " + a[0] + ", " + a[1]);
        } else {
            for (int i = 0; i < a.length; i++) {
                a[i] = random.nextInt(200) - 100;
            }
            for (int i = 0; i < a.length - 1; i++) {
                tempMin=a[i] + a[i + 1];
                if (tempMin < min) {
                    x1 = i;
                    min=tempMin;
                }
            }
            System.out.println(Arrays.toString(a));
            System.out.println("Шукані елементи: " + a[x1] + "; " + a[x1 + 1]);
        }
    }
}


33. В даному масиві знайдіть кількість чисел, сусіди у яких відрізняються більш ніж в 2 рази.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas33 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        int count = 0;
        if (a.length <= 2) {
            System.out.println("Потрібна більша кількість елементів");
            System.exit(0);
        }
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(1000);
        }
        for (int i = 1; i < a.length - 1; i++) {
            if (test(a[i - 1], a[i + 1])) {
                count++;
                System.out.println("Елемент " + (i + 1));
            }
        }
        System.out.println(Arrays.toString(a));
        System.out.println("Кількість елементів " + count);
    }

    public static boolean test(int n, int m) {
        if (n * 2 < m || m * 2 < n) {
            return true;
        } else {
            return false;
        }
    }
}

34. Знайдіть кількість чисел, кожне з яких дорівнює сумі квадратів своїх сусідів і при цьому не є найбільшим в масиві.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas34 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        int count = 0;
        int max = Integer.MIN_VALUE;
        if (a.length <= 2) {
            System.out.println("Потрібна більша кількість елементів");
            System.exit(0);
        }
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(100);
            if (a[i] > max) {
                max = a[i];
            }
        }
        for (int i = 1; i < a.length-1; i++) {
            if (test(a[i-1],a[i+1],a[i])&&a[i]!=max){
                count++;
                System.out.println("Елемент a["+(i+1)+"]="+a[i]);
                System.out.println("Сусіди a["+i+"]="+a[i-1]
                                     +" і а["+(i+2)+"]="+a[i+1]);
            }
        }
       System.out.println(Arrays.toString(a));
        if (count==0){
            System.out.println("Такі елементи відсутні");
        }else {
            System.out.println("Кількість елементів "+count);
        }
    }

    static boolean test(int a, int b, int c) {
        if (a * a + b * b == c * c) {
            return true;
        } else {
            return false;
        }
    }
}


35. Перевірте, чи містить даний масив з n чисел, всі числа від 1 до n.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas35 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(a.length) + 1;
        }
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
        for (int i = 0; i < a.length; i++) {
            if (a[i] != i + 1) {
                System.out.println("Масив не містить всі числа від 1 до " + a.length);
                System.exit(0);
            }
        }
        System.out.println("Масив містить всі числа від 1 до " + a.length);
    }
}


36. Перевірте, чи утворють елементи масиву в даному порядку арифметичну або геометричну прогресії.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas36 {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Масив якої довжини бажаєте створити? ->");
        int[] a = new int[sc.nextInt()];
        if (a.length <= 1) {
            System.out.println("Потрібно хоча б 2 елементи");
            System.exit(0);
        } else if (a.length == 2) {
            a[0] = random.nextInt(1000);
            a[1] = random.nextInt(1000);
            System.out.println(Arrays.toString(a));
            System.out.println("Елементи утворюють арифметичну прогресію");
            if (a[0] == 0 & a[1] != 0) {
                System.out.println("Елементи не утворюють геометичну прогресію");
            } else {
                System.out.println("Елементи утворюють геометичну прогресію");
            }
            System.exit(0);
        }
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(1000);
        }
        System.out.println(Arrays.toString(a));
        int dif = a[1] - a[0];
        for (int i = 1; i < a.length - 1; i++) {
            if (a[i + 1] - a[i] != dif) {
                System.out.println("Елементи не утворюють арифметичну прогресію");
                break;
            }
        }
        double denom = (double) a[1] / a[0];
        for (int i = 1; i < a.length - 1; i++) {
            if (a[i + 1] / a[i] != denom) {
                System.out.println("Елементи не утворюють геометичну прогресію");

                System.exit(0);
            }
        }
        System.out.println("Елементи утворюють арифметичну прогресію");
        System.out.println("Елементи утворюють геометичну прогресію");
    }
}


37. Перевірте, чи є даний масив зростаючим або спадаючим.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas37 {
    int[] a;

    public TaskMas37() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(100);
        }
        System.out.println(Arrays.toString(a));
        if(a.length==1){
            System.out.println("Важко визначити");
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        TaskMas37 tm = new TaskMas37();
        if (tm.grow()) {
            System.out.println("Послідовність зростаюча");
        } else if (tm.deGrow()) {
            System.out.println("Послідовність спадна");
        } else {
            System.out.println("Послідовність не має властивості" +
                    " спадності чи зростання");
        }
    }

    boolean grow() {
        boolean flag = true;
        for (int i = 1; i < a.length; i++) {
            if (a[i] - a[i - 1] <= 0) {
                flag = false;
                break;
            }
        }
        return flag;
    }

    boolean deGrow() {
        boolean flag = true;
        for (int i = 1; i < a.length; i++) {
            if (a[i] - a[i - 1] >= 0) {
                flag = false;
                break;
            }
        }
        return flag;
    }
}


38. Знайдіть кількість різних елементів даного масиву.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas38 {
    int[] a;

    public TaskMas38() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(a.length) + 1;
        }
        System.out.println(Arrays.toString(a));
        if (a.length == 1) {
            System.out.println("1 неповторний елемент");
            System.exit(0);
        }
        Arrays.sort(a);
    }

    public static void main(String[] args) {
        TaskMas38 tm = new TaskMas38();
        System.out.println("Кількість неповторних елементів " + tm.count());
    }

    int count() {
        int count = 1;
        for (int i = 0; i < a.length - 1; i++) {
            if (a[i] != a[i + 1]) {
                count++;
            }
        }
        return count;
    }
}


39. Визначте кількість змін знаків елементів масиву.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

import static java.lang.Math.signum;

public class TaskMas39 {
    int[] a;

    public TaskMas39() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(a.length * 2) - a.length;
        }
        System.out.println(Arrays.toString(a));
        if (a.length == 1) {
            System.out.println("Зміна знаків відсутня");
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        TaskMas39 tm = new TaskMas39();
        System.out.println("Зміна знаків " + tm.count());
    }

    int count() {
        int count = 0;
        for (int i = 0; i < a.length - 1; i++) {
            if ((signum((double) a[i]) != signum((double) a[i + 1])) 
                    && (a[i] != 0) && a[i + 1] != 0) {
                count++;
            }
        }
        return count;
    }
}

40. В даному масиві знайти максимальну кількість однакових елементів. Якщо їх декілька, то вивести довільний.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas40 {
    int[] a;
    int[] b;

    public TaskMas40() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];
        b = new int[a.length];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(a.length) + 1;
            b[a[i] - 1]++;
        }
        System.out.println(Arrays.toString(a));
        if (a.length == 1) {
            System.out.println("Найчастіше зустрічається " + a[0]);
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        TaskMas40 tm = new TaskMas40();
        Arrays.sort(tm.a);
        System.out.println("Найчастіше зустрічається " + tm.maxOften());
    }

    String maxOften() {
        int max = -1;
        int pointer = 0;
        for (int i = 0; i < b.length; i++) {
            if (b[i] >= max) {
                max = b[i];
                pointer = i + 1;
            }
        }
        return new String(pointer + " - " + max + " раз(ів)");
    }
}


41. В одновимірному масиві, що складається з n цілих чисел, обчисліть номер мінімального елемента масиву і суму елементів масиву, розташованих між першим і другим негативними елементами. Якщо це зробити не можливо вивести відповідне повідомлення.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas41 {
    int[] a;
    int count = 0;


    public TaskMas41() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(2 * a.length + 1) - a.length;
            if (a[i] < 0) {
                count++;
            }
        }
        System.out.println(Arrays.toString(a));
    }

    public static void main(String[] args) {
        TaskMas41 tm = new TaskMas41();
        tm.numbMinElemMas();
        if (tm.count > 1 && tm.a.length > 2) {
            int i = tm.firstNegativ();
            int j = tm.secondNegativ(i);
            if (j - i > 1) {
                System.out.println("Шукана сума " + tm.sum(i, j));
                System.exit(0);
            }
        }
        System.out.println("Суму порахуати не можливо");
    }

    void numbMinElemMas() {
        int min = Integer.MAX_VALUE;
        int count = 0;
        for (int i = 0; i < a.length; i++) {
            if (a[i] < min) {
                min = a[i];
                count = i;
            }
        }
        System.out.println("Найменьший елемент під номером " + (count + 1));
    }

    int firstNegativ() {

        for (int j = 0; j < a.length; j++) {
            if (a[j] < 0) {
                return j;
            }
        }
        return -1;
    }

    int secondNegativ(int i) {
        for (int j = i + 1; j < a.length; j++) {
            if (a[j] < 0)
                return j;
        }
        return -1;
    }

    int sum(int i, int j) {
        int sum = 0;
        for (int k = i + 1; k < j; k++) {
            sum += a[k];
        }
        return sum;
    }
}

42. Напишіть програму, яка в не порожньому масивы цілих чисел виводить число локальних максимумів (елемент є локальним максимумом, якщо він не має сусідів, більших, ніж він сам).
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas42 {
    int[] a;
    int count = 0;

    public TaskMas42() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(2 * a.length + 1) - a.length;
        }
        System.out.println(Arrays.toString(a));
        if (a.length <= 2) {
            System.out.println("Локальні максимуими не можна порахувати.");
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        TaskMas42 tm = new TaskMas42();
        System.out.println("Локальних максимумів " + tm.countLocMas());
    }

    int countLocMas() {
        for (int i = 1; i < a.length - 1; i++) {
            if (a[i] > a[i - 1] && a[i] > a[i + 1]) {
                count++;
            }
        }
        return count;
    }
}

43. В даному масиві знайдіть два найменших елемента.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas43 {
    int[] a;

    public TaskMas43() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(2 * a.length + 1) - a.length;
        }
        System.out.println(Arrays.toString(a));
        if (a.length < 2) {
            System.out.println("Мінімуми не можна знайти.");
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        TaskMas43 tm = new TaskMas43();
        System.out.println("Мінімальні елементи " + tm.findTowMin());
    }

    String findTowMin() {
        Arrays.sort(a);
        if (a[0] == a[a.length - 1]) {
            return "однакові і дорівнюють " + a[0];
        }
        int i = 1;
        while (a[0] == a[i]) {
            i++;
        }
        return "" + a[0] + " " + a[i];
    }
}

44. Визначте, чи є в масиві елементи, що повторюються.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas44 {
    int[] a;
    boolean flag;

    public TaskMas44() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];

        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(2 * a.length + 1) - a.length;
        }
        System.out.println(Arrays.toString(a));
        if (a.length < 2) {
            System.out.println("Елемент тільки один.");
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        TaskMas44 tm = new TaskMas44();
        tm.isFlag();
    }

    void isFlag() {
        Arrays.sort(a);
        for (int i = 0; i < a.length - 1; i++) {
            if (a[i] == a[i + 1]) {
                System.out.println("Присутні однакові елементи");
                System.exit(0);
            }
        }
        System.out.println("Однакові елементи відсутні");
    }
}

45. В даному масиві знайдіть найбільшу серію поспіль елементів, розташованих за зростанням.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas45 {
    int[] a;


    public TaskMas45() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(2 * a.length + 1) - a.length;
        }
        System.out.println(Arrays.toString(a));
        if (a.length == 1) {
            System.out.println("Найбільша серія складається з 1 елемента.");
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        TaskMas45 tm = new TaskMas45();
        System.out.println("Максимальна серія складається з " + tm.maxSeries());
    }

    int maxSeries() {
        int count = 1;
        int maxSeries = 0;
        for (int i = 1; i < a.length; i++) {
            if (a[i - 1] < a[i]) {
                count++;
                if (count > maxSeries) {
                    maxSeries = count;
                }
            } else {
                if (count > maxSeries) {
                    maxSeries = count;
                }
                count = 1;
            }
        }
        return maxSeries;
    }
}


46. У масиві знайдіть кількість серій з четвірок поспіль попарно різних елементів.
Відповідь:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class TaskMas46 {
    int[] a;

    public TaskMas46() {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.print("Скільки елементів в масиві? ->");
        a = new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = random.nextInt(2 * a.length + 1) - a.length;
        }
        System.out.println(Arrays.toString(a));
        if (a.length < 4) {
            System.out.println("Не хватає елементів.");
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        TaskMas46 tm = new TaskMas46();
        System.out.println("Кількість четвірок " + tm.count());
    }

    int count() {
        int count = 0;
        for (int i = 0; i <=a.length - 4; i++) {
            if (a[i] != a[i + 1] && a[i + 1] != a[i + 2] && a[i + 2] != a[i + 3]) {
                count++;
            }
        }
        return count;
    }
}

Комментариев нет:

Отправить комментарий