Алгоритмы (Java): различия между версиями
Перейти к навигации
Перейти к поиску
(не показано 13 промежуточных версий этого же участника) | |||
Строка 28: | Строка 28: | ||
=== Произведение целых чисел === | === Произведение целых чисел === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | System.out.print("Введите число множителей: "); | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | int count = sc.nextInt(); | ||
+ | |||
+ | int product = 1; | ||
+ | for (int i = 0; i < count; i++) { | ||
+ | System.out.print("Введите множетель " + (i+1) + ": "); | ||
+ | int num = sc.nextInt(); | ||
+ | product *= num; | ||
+ | } | ||
+ | |||
+ | System.out.println("Произведение = " + product); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Сколько нечетных среди n введенных === | === Сколько нечетных среди n введенных === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | System.out.print("Введите количество чисел: "); | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | int count = sc.nextInt(); | ||
+ | |||
+ | int oddCount = 0; | ||
+ | for (int i = 0; i < count; i++) { | ||
+ | System.out.print("Введите число " + (i+1) + ": "); | ||
+ | int num = sc.nextInt(); | ||
+ | if (Math.abs(num % 2) == 1) { | ||
+ | oddCount++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | System.out.println("Количество нечётных чисел = " + oddCount); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Защита от неверного ввода === | === Защита от неверного ввода === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | |||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | int x; | ||
+ | do { | ||
+ | System.out.print("Введите x > 0: "); | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | x = sc.nextInt(); | ||
+ | if (x <= 0) { | ||
+ | System.out.println("Неверный ввод."); | ||
+ | } | ||
+ | } while (x <= 0); | ||
+ | System.out.println("x = " + x); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Вывод 10 первых степеней двойки === | === Вывод 10 первых степеней двойки === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | int x = 2; | ||
+ | for (int i = 1; i <= 10; i++) { | ||
+ | System.out.println("2 ** " + i + " = " + x); | ||
+ | x *= 2; | ||
+ | } | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Вывод всех двухзначных чисел, кратных 5 === | === Вывод всех двухзначных чисел, кратных 5 === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | int x = 10; | ||
+ | while (x < 100) { | ||
+ | System.out.println(x); | ||
+ | x += 5; | ||
+ | } | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Вывод n первых чисел Фибоначчи === | === Вывод n первых чисел Фибоначчи === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | |||
+ | import java.util.Scanner; | ||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | int n, a, b; | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | |||
+ | System.out.println("Введите число n (n > 1): "); | ||
+ | n = sc.nextInt(); | ||
+ | |||
+ | a = 1; b = 1; | ||
+ | System.out.print(a + " " + b + " "); | ||
+ | for (int i = 1; i <= n - 2; ++i) { | ||
+ | int tmp = a; | ||
+ | a = b; | ||
+ | b += tmp; | ||
+ | System.out.print(b + " "); | ||
+ | } | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти НОД(A,B), используя алгоритм Евклида: === | === Найти НОД(A,B), используя алгоритм Евклида: === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | int a, b; | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | |||
+ | System.out.println("Введите целое число A:"); | ||
+ | a = sc.nextInt(); | ||
+ | System.out.println("Введите целое число B:"); | ||
+ | b = sc.nextInt(); | ||
+ | |||
+ | while (b != 0) { | ||
+ | int tmp = a; | ||
+ | a = b; | ||
+ | b = tmp % b; | ||
+ | } | ||
+ | |||
+ | System.out.println("НОД(A, B) = " + a); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти сумму цифр целого числа m === | === Найти сумму цифр целого числа m === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | |||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | int m; | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | |||
+ | System.out.println("Введите целое число m:"); | ||
+ | m = sc.nextInt(); | ||
+ | |||
+ | int sum = 0; | ||
+ | int m1 = Math.abs(m); | ||
+ | while (m1 > 0) { | ||
+ | sum += m1 % 10; | ||
+ | m1 /= 10; | ||
+ | } | ||
+ | |||
+ | System.out.println("Сумма цифр числа " + m + " равна " + sum); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти max из введенных чисел === | === Найти max из введенных чисел === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | System.out.print("Введите количество чисел: "); | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | int count = sc.nextInt(); | ||
+ | |||
+ | int i = 0; | ||
+ | System.out.print("Введите число " + (i+1) + ": "); | ||
+ | int num = sc.nextInt(); | ||
+ | int max = num; | ||
+ | |||
+ | for (i = 1; i < count; i++) { | ||
+ | System.out.print("Введите число " + (i+1) + ": "); | ||
+ | num = sc.nextInt(); | ||
+ | if (num > max) { | ||
+ | max = num; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | System.out.println("Максимальное число = " + max); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти min, удовлетворяющее условию p(x) === | === Найти min, удовлетворяющее условию p(x) === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | |||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | public static boolean p(int x) { | ||
+ | return x > 0; | ||
+ | } | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | System.out.print("Введите количество чисел: "); | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | int count = sc.nextInt(); | ||
+ | |||
+ | boolean exists = false; | ||
+ | int min = Integer.MAX_VALUE; | ||
+ | |||
+ | for (int i = 0; i < count; i++) { | ||
+ | System.out.print("Введите число " + (i+1) + ": "); | ||
+ | int num = sc.nextInt(); | ||
+ | if ((num < min) && p(num)) { | ||
+ | min = num; | ||
+ | exists = true; | ||
+ | } | ||
+ | } | ||
+ | if (exists) { | ||
+ | System.out.println("Минимальное из чисел удовлетворяющих условию = " + min); | ||
+ | } else { | ||
+ | System.out.println("Нет чисел, удовлетворяющих условию"); | ||
+ | } | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Есть ли среди введенных число k? === | === Есть ли среди введенных число k? === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | |||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | public static void main(String[] args) { | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | boolean exists = false; | ||
+ | System.out.print("Введите количество чисел: "); | ||
+ | int count = sc.nextInt(); | ||
+ | |||
+ | System.out.print("Введите искомое число: "); | ||
+ | int k = sc.nextInt(); | ||
+ | |||
+ | for (int i = 0; i < count; i++) { | ||
+ | System.out.print("Введите число " + (i+1) + ": "); | ||
+ | int num = sc.nextInt(); | ||
+ | if (num == k) { | ||
+ | exists = true; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (exists) { | ||
+ | System.out.println("Число " + k + " было введено"); | ||
+ | } else { | ||
+ | System.out.println("Число " + k + " не было введено"); | ||
+ | } | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Является ли число N>1 простым? === | === Является ли число N>1 простым? === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | public static void main(String[] args) { | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | |||
+ | System.out.print("Введите число n > 1: "); | ||
+ | int n = sc.nextInt(); | ||
+ | |||
+ | boolean isPrime = true; | ||
+ | for (int i = 2; i <= Math.round(Math.sqrt(n)); i++) { | ||
+ | if (n % i == 0) { | ||
+ | isPrime = false; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (isPrime) { | ||
+ | System.out.println("Число " + n + " является простым"); | ||
+ | } else { | ||
+ | System.out.println("Число " + n + " является составным"); | ||
+ | } | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Разложение числа на простые множители === | === Разложение числа на простые множители === | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
+ | package ru.example; | ||
+ | |||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | public static void main(String[] args) { | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | |||
+ | System.out.print("Введите число x > 1: "); | ||
+ | int x = sc.nextInt(); | ||
+ | int i = 2; | ||
+ | System.out.print(x + " = 1"); | ||
+ | do { | ||
+ | if (x % i == 0) { | ||
+ | System.out.print(" * " + i); | ||
+ | x = x / i; | ||
+ | } else { | ||
+ | i++; | ||
+ | } | ||
+ | } while (x != 1); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия на 13:36, 7 июля 2021
Код программ
Сумма вводимых целых чисел
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6
7 public static void main(String[] args) {
8 System.out.print("Введите число слагаемых: ");
9 Scanner sc = new Scanner(System.in);
10 int count = sc.nextInt();
11
12 int sum = 0;
13 for (int i = 0; i < count; i++) {
14 System.out.print("Введите число " + (i+1) + ": ");
15 int num = sc.nextInt();
16 sum += num;
17 }
18
19 System.out.println("Сумма = " + sum);
20 }
21 }
Произведение целых чисел
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6
7 public static void main(String[] args) {
8 System.out.print("Введите число множителей: ");
9 Scanner sc = new Scanner(System.in);
10 int count = sc.nextInt();
11
12 int product = 1;
13 for (int i = 0; i < count; i++) {
14 System.out.print("Введите множетель " + (i+1) + ": ");
15 int num = sc.nextInt();
16 product *= num;
17 }
18
19 System.out.println("Произведение = " + product);
20 }
21 }
Сколько нечетных среди n введенных
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6
7 public static void main(String[] args) {
8 System.out.print("Введите количество чисел: ");
9 Scanner sc = new Scanner(System.in);
10 int count = sc.nextInt();
11
12 int oddCount = 0;
13 for (int i = 0; i < count; i++) {
14 System.out.print("Введите число " + (i+1) + ": ");
15 int num = sc.nextInt();
16 if (Math.abs(num % 2) == 1) {
17 oddCount++;
18 }
19 }
20
21 System.out.println("Количество нечётных чисел = " + oddCount);
22 }
23 }
Защита от неверного ввода
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6
7 public static void main(String[] args) {
8 int x;
9
10 do {
11 System.out.print("Введите x > 0: ");
12 Scanner sc = new Scanner(System.in);
13 x = sc.nextInt();
14 if (x <= 0) {
15 System.out.println("Неверный ввод.");
16 }
17 } while (x <= 0);
18 System.out.println("x = " + x);
19 }
20 }
Вывод 10 первых степеней двойки
1 package ru.example;
2
3 public class Main {
4
5 public static void main(String[] args) {
6 int x = 2;
7
8 for (int i = 1; i <= 10; i++) {
9 System.out.println("2 ** " + i + " = " + x);
10 x *= 2;
11 }
12 }
13 }
Вывод всех двухзначных чисел, кратных 5
1 package ru.example;
2
3 public class Main {
4
5 public static void main(String[] args) {
6 int x = 10;
7
8 while (x < 100) {
9 System.out.println(x);
10 x += 5;
11 }
12 }
13 }
Вывод n первых чисел Фибоначчи
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6
7 public static void main(String[] args) {
8 int n, a, b;
9 Scanner sc = new Scanner(System.in);
10
11 System.out.println("Введите число n (n > 1): ");
12 n = sc.nextInt();
13
14 a = 1; b = 1;
15 System.out.print(a + " " + b + " ");
16 for (int i = 1; i <= n - 2; ++i) {
17 int tmp = a;
18 a = b;
19 b += tmp;
20 System.out.print(b + " ");
21 }
22 }
23 }
Найти НОД(A,B), используя алгоритм Евклида:
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6
7 public static void main(String[] args) {
8 int a, b;
9 Scanner sc = new Scanner(System.in);
10
11 System.out.println("Введите целое число A:");
12 a = sc.nextInt();
13 System.out.println("Введите целое число B:");
14 b = sc.nextInt();
15
16 while (b != 0) {
17 int tmp = a;
18 a = b;
19 b = tmp % b;
20 }
21
22 System.out.println("НОД(A, B) = " + a);
23 }
24 }
Найти сумму цифр целого числа m
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6
7 public static void main(String[] args) {
8 int m;
9 Scanner sc = new Scanner(System.in);
10
11 System.out.println("Введите целое число m:");
12 m = sc.nextInt();
13
14 int sum = 0;
15 int m1 = Math.abs(m);
16
17 while (m1 > 0) {
18 sum += m1 % 10;
19 m1 /= 10;
20 }
21
22 System.out.println("Сумма цифр числа " + m + " равна " + sum);
23 }
24 }
Найти max из введенных чисел
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6
7 public static void main(String[] args) {
8 System.out.print("Введите количество чисел: ");
9 Scanner sc = new Scanner(System.in);
10 int count = sc.nextInt();
11
12 int i = 0;
13 System.out.print("Введите число " + (i+1) + ": ");
14 int num = sc.nextInt();
15 int max = num;
16
17 for (i = 1; i < count; i++) {
18 System.out.print("Введите число " + (i+1) + ": ");
19 num = sc.nextInt();
20 if (num > max) {
21 max = num;
22 }
23 }
24
25 System.out.println("Максимальное число = " + max);
26 }
27 }
Найти min, удовлетворяющее условию p(x)
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6 public static boolean p(int x) {
7 return x > 0;
8 }
9
10 public static void main(String[] args) {
11 System.out.print("Введите количество чисел: ");
12 Scanner sc = new Scanner(System.in);
13 int count = sc.nextInt();
14
15 boolean exists = false;
16 int min = Integer.MAX_VALUE;
17
18 for (int i = 0; i < count; i++) {
19 System.out.print("Введите число " + (i+1) + ": ");
20 int num = sc.nextInt();
21 if ((num < min) && p(num)) {
22 min = num;
23 exists = true;
24 }
25 }
26
27 if (exists) {
28 System.out.println("Минимальное из чисел удовлетворяющих условию = " + min);
29 } else {
30 System.out.println("Нет чисел, удовлетворяющих условию");
31 }
32 }
33 }
Есть ли среди введенных число k?
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6 public static void main(String[] args) {
7 Scanner sc = new Scanner(System.in);
8 boolean exists = false;
9
10 System.out.print("Введите количество чисел: ");
11 int count = sc.nextInt();
12
13 System.out.print("Введите искомое число: ");
14 int k = sc.nextInt();
15
16 for (int i = 0; i < count; i++) {
17 System.out.print("Введите число " + (i+1) + ": ");
18 int num = sc.nextInt();
19 if (num == k) {
20 exists = true;
21 break;
22 }
23 }
24
25 if (exists) {
26 System.out.println("Число " + k + " было введено");
27 } else {
28 System.out.println("Число " + k + " не было введено");
29 }
30 }
31 }
Является ли число N>1 простым?
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6 public static void main(String[] args) {
7 Scanner sc = new Scanner(System.in);
8
9 System.out.print("Введите число n > 1: ");
10 int n = sc.nextInt();
11
12 boolean isPrime = true;
13 for (int i = 2; i <= Math.round(Math.sqrt(n)); i++) {
14 if (n % i == 0) {
15 isPrime = false;
16 break;
17 }
18 }
19
20 if (isPrime) {
21 System.out.println("Число " + n + " является простым");
22 } else {
23 System.out.println("Число " + n + " является составным");
24 }
25 }
26 }
Разложение числа на простые множители
1 package ru.example;
2
3 import java.util.Scanner;
4
5 public class Main {
6 public static void main(String[] args) {
7 Scanner sc = new Scanner(System.in);
8
9 System.out.print("Введите число x > 1: ");
10 int x = sc.nextInt();
11
12 int i = 2;
13 System.out.print(x + " = 1");
14 do {
15 if (x % i == 0) {
16 System.out.print(" * " + i);
17 x = x / i;
18 } else {
19 i++;
20 }
21 } while (x != 1);
22 }
23 }