Алгоритмы (C++): различия между версиями
Перейти к навигации
Перейти к поиску
(не показано 7 промежуточных версий этого же участника) | |||
Строка 144: | Строка 144: | ||
std::cin >> n; | std::cin >> n; | ||
− | a = | + | a = 0; b = 1; |
std::cout << a << " " << b << " "; | std::cout << a << " " << b << " "; | ||
for (int i = 1; i <= n - 2; ++i) { | for (int i = 1; i <= n - 2; ++i) { | ||
Строка 189: | Строка 189: | ||
int m; | int m; | ||
− | std::cout << "Введите целое число m:"; | + | std::cout << "Введите целое число m (m > 1):"; |
std::cin >> m; | std::cin >> m; | ||
Строка 206: | Строка 206: | ||
=== Найти max из введенных чисел === | === Найти max из введенных чисел === | ||
<syntaxhighlight lang="c++" line> | <syntaxhighlight lang="c++" line> | ||
+ | #include <iostream> | ||
+ | #include <windows.h> | ||
+ | |||
+ | int main() { | ||
+ | SetConsoleOutputCP(CP_UTF8); | ||
+ | |||
+ | int n, x; | ||
+ | |||
+ | std::cout << "Введите количество чисел (n > 1):"; | ||
+ | std::cin >> n; | ||
+ | |||
+ | std::cout << "Введите число 1:"; | ||
+ | std::cin >> x; | ||
+ | int max = x; | ||
+ | |||
+ | for (int i = 2; i <= n; i++) { | ||
+ | std::cout << "Введите число " << i << ":"; | ||
+ | std::cin >> x; | ||
+ | if (x > max) { | ||
+ | max = x; | ||
+ | } | ||
+ | } | ||
+ | std::cout << "Максимальное из введенных чисел: " << max; | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти min, удовлетворяющее условию p(x) === | === Найти min, удовлетворяющее условию p(x) === | ||
<syntaxhighlight lang="c++" line> | <syntaxhighlight lang="c++" line> | ||
+ | #include <iostream> | ||
+ | #include <windows.h> | ||
+ | |||
+ | bool p(double x) { | ||
+ | return x > 0; | ||
+ | } | ||
+ | |||
+ | int main() { | ||
+ | SetConsoleOutputCP(CP_UTF8); | ||
+ | |||
+ | int n, x; | ||
+ | |||
+ | std::cout << "Введите количество чисел:"; | ||
+ | std::cin >> n; | ||
+ | |||
+ | bool exists = false; | ||
+ | double min = DBL_MAX; | ||
+ | for (int i = 0; i < n; ++i) { | ||
+ | std::cout << "Введите " << i+1 << " число:"; | ||
+ | std::cin >> x; | ||
+ | if ((x < min) && p(x)) { | ||
+ | min = x; | ||
+ | exists = true; | ||
+ | } | ||
+ | } | ||
+ | if (exists) { | ||
+ | std::cout << "Минимальное из введенных чисел, удовлетворяющих условию: " << min; | ||
+ | } else { | ||
+ | std::cout << "Нет чисел, удовлетворяющих условию"; | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Есть ли среди введенных число k? === | === Есть ли среди введенных число k? === | ||
<syntaxhighlight lang="c++" line> | <syntaxhighlight lang="c++" line> | ||
+ | #include <iostream> | ||
+ | #include <windows.h> | ||
+ | |||
+ | int main() { | ||
+ | SetConsoleOutputCP(CP_UTF8); | ||
+ | |||
+ | int n, k, x; | ||
+ | boolean exists = false; | ||
+ | |||
+ | std::cout << "Введите количество чисел:"; | ||
+ | std::cin >> n; | ||
+ | std::cout << "Введите искомое число:"; | ||
+ | std::cin >> k; | ||
+ | |||
+ | for (int i = 1; i <= n; i++) { | ||
+ | std::cout << "Введите число " << i << ":"; | ||
+ | std::cin >> x; | ||
+ | if (x == k) { | ||
+ | exists = true; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (exists) { | ||
+ | std::cout << "Число " << k << " было введено."; | ||
+ | } else { | ||
+ | std::cout << "Число " << k << " не было введено."; | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Является ли число N>1 простым? === | === Является ли число N>1 простым? === | ||
<syntaxhighlight lang="c++" line> | <syntaxhighlight lang="c++" line> | ||
+ | #include <iostream> | ||
+ | #include <windows.h> | ||
+ | |||
+ | int main() { | ||
+ | SetConsoleOutputCP(CP_UTF8); | ||
+ | |||
+ | int n; | ||
+ | std::cout << "Введите целое число n (n > 1):"; | ||
+ | std::cin >> n; | ||
+ | |||
+ | bool isPrime = true; | ||
+ | for (int i = 2; i <= round(sqrt(n)); i++) { | ||
+ | if (n % i == 0) { | ||
+ | isPrime = false; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | if (isPrime) { | ||
+ | std::cout << "Число " << n << " является простым"; | ||
+ | } else { | ||
+ | std::cout << "Число " << n << " является составным"; | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Разложение числа на простые множители === | === Разложение числа на простые множители === | ||
<syntaxhighlight lang="c++" line> | <syntaxhighlight lang="c++" line> | ||
+ | #include <iostream> | ||
+ | #include <windows.h> | ||
+ | |||
+ | bool p(double x) { | ||
+ | return x > 0; | ||
+ | } | ||
+ | |||
+ | int main() { | ||
+ | SetConsoleOutputCP(CP_UTF8); | ||
+ | int x; | ||
+ | |||
+ | std::cout << "Введите целое число x (x > 1):"; | ||
+ | scanf_s("%d", &x); | ||
+ | |||
+ | int i = 2; | ||
+ | std::cout << x << " = 1"; | ||
+ | do { | ||
+ | if (x % i == 0) { | ||
+ | std::cout << " * " << i; | ||
+ | x = x / i; | ||
+ | } else { | ||
+ | i++; | ||
+ | } | ||
+ | } while (x != 1); | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия на 18:48, 26 июля 2022
Код программ
Сумма вводимых целых чисел
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int count;
8 std::cout << "Введите число слагаемых:";
9 std::cin >> count;
10
11 int sum = 0;
12
13 for(int i = 1; i <= count; i++) {
14 int x;
15 std::cout <<"Введите слагаемое " << i << ":";
16 std::cin >> x;
17 sum += x;
18 }
19
20 std::cout << "Сумма равна " << sum << std::endl;
21 return 0;
22 }
Произведение целых чисел
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int count;
8 std::cout << "Введите число слагаемых:";
9 std::cin >> count;
10
11 int product = 1;
12
13 for(int i = 1; i <= count; i++) {
14 int x;
15 std::cout <<"Введите множитель " << i << ":";
16 std::cin >> x;
17 product *= x;
18 }
19
20 std::cout << "Произведение равно " << product << std::endl;
21 return 0;
22 }
Сколько нечетных среди n введенных
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int count = 0, n;
8 std::cout << "Введите количество чисел: ";
9 std::cin >> n;
10
11 for(int i = 1; i <= n; i++) {
12 int x;
13 std::cout <<"Введите число " << i << ":";
14 std::cin >> x;
15
16 if (x % 2 == 1) {
17 count++;
18 }
19 }
20
21 std::cout << "Количество нечетных чисел равно " << count << std::endl;
22 return 0;
23 }
Защита от неверного ввода
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int x;
8 do {
9 std::cout << "Введите x > 0: ";
10 std::cin >> x;
11 if (x <= 0) {
12 std::cout << "Неверный ввод." << std::endl;
13 }
14 } while (x <= 0);
15 }
Вывод 10 первых степеней двойки
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int x = 2;
8 for (int i = 1; i <= 10; i++) {
9 std::cout << "2 ** " << i << " = " << x << std::endl;
10 x *= 2;
11 }
12 }
Вывод всех двухзначных чисел, кратных 5
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int x = 10;
8 while (x < 100) {
9 std::cout << x << std::endl;
10 x += 5;
11 }
12 }
Вывод n первых чисел Фибоначчи
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int n, a, b;
8
9 std::cout << "Введите целое число n (n > 1): ";
10 std::cin >> n;
11
12 a = 0; b = 1;
13 std::cout << a << " " << b << " ";
14 for (int i = 1; i <= n - 2; ++i) {
15 int tmp = a;
16 a = b;
17 b += tmp;
18 std::cout << b << " ";
19 }
20 }
Найти НОД(A,B), используя алгоритм Евклида:
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int a, b;
8
9 std::cout << "Введите целое число a:";
10 std::cin >> a;
11 std::cout << "Введите целое число b:";
12 std::cin >> b;
13
14 while (b != 0) {
15 int tmp = a;
16 a = b;
17 b = tmp % b;
18 }
19
20 std::cout << "НОД(A, B) = " << a;
21 }
Найти сумму цифр целого числа m
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int m;
8 std::cout << "Введите целое число m (m > 1):";
9 std::cin >> m;
10
11 int sum = 0;
12 int m1 = abs(m);
13
14 while (m1 > 0) {
15 sum += m1 % 10;
16 m1 /= 10;
17 }
18
19 std::cout << "Сумма цифр числа " << m << " равна " << sum << std::endl;
20 }
Найти max из введенных чисел
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int n, x;
8
9 std::cout << "Введите количество чисел (n > 1):";
10 std::cin >> n;
11
12 std::cout << "Введите число 1:";
13 std::cin >> x;
14 int max = x;
15
16 for (int i = 2; i <= n; i++) {
17 std::cout << "Введите число " << i << ":";
18 std::cin >> x;
19 if (x > max) {
20 max = x;
21 }
22 }
23
24 std::cout << "Максимальное из введенных чисел: " << max;
25 }
Найти min, удовлетворяющее условию p(x)
1 #include <iostream>
2 #include <windows.h>
3
4 bool p(double x) {
5 return x > 0;
6 }
7
8 int main() {
9 SetConsoleOutputCP(CP_UTF8);
10
11 int n, x;
12
13 std::cout << "Введите количество чисел:";
14 std::cin >> n;
15
16 bool exists = false;
17 double min = DBL_MAX;
18 for (int i = 0; i < n; ++i) {
19 std::cout << "Введите " << i+1 << " число:";
20 std::cin >> x;
21 if ((x < min) && p(x)) {
22 min = x;
23 exists = true;
24 }
25 }
26
27 if (exists) {
28 std::cout << "Минимальное из введенных чисел, удовлетворяющих условию: " << min;
29 } else {
30 std::cout << "Нет чисел, удовлетворяющих условию";
31 }
32 }
Есть ли среди введенных число k?
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int n, k, x;
8 boolean exists = false;
9
10 std::cout << "Введите количество чисел:";
11 std::cin >> n;
12
13 std::cout << "Введите искомое число:";
14 std::cin >> k;
15
16 for (int i = 1; i <= n; i++) {
17 std::cout << "Введите число " << i << ":";
18 std::cin >> x;
19 if (x == k) {
20 exists = true;
21 break;
22 }
23 }
24
25 if (exists) {
26 std::cout << "Число " << k << " было введено.";
27 } else {
28 std::cout << "Число " << k << " не было введено.";
29 }
30 }
Является ли число N>1 простым?
1 #include <iostream>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6
7 int n;
8 std::cout << "Введите целое число n (n > 1):";
9 std::cin >> n;
10
11 bool isPrime = true;
12 for (int i = 2; i <= round(sqrt(n)); i++) {
13 if (n % i == 0) {
14 isPrime = false;
15 break;
16 }
17 }
18
19 if (isPrime) {
20 std::cout << "Число " << n << " является простым";
21 } else {
22 std::cout << "Число " << n << " является составным";
23 }
24 }
Разложение числа на простые множители
1 #include <iostream>
2 #include <windows.h>
3
4 bool p(double x) {
5 return x > 0;
6 }
7
8 int main() {
9 SetConsoleOutputCP(CP_UTF8);
10
11 int x;
12
13 std::cout << "Введите целое число x (x > 1):";
14 scanf_s("%d", &x);
15
16 int i = 2;
17 std::cout << x << " = 1";
18 do {
19 if (x % i == 0) {
20 std::cout << " * " << i;
21 x = x / i;
22 } else {
23 i++;
24 }
25 } while (x != 1);
26 }