Алгоритмы (Kotlin): различия между версиями
Перейти к навигации
Перейти к поиску
(не показано 10 промежуточных версий этого же участника) | |||
Строка 58: | Строка 58: | ||
=== Защита от неверного ввода === | === Защита от неверного ввода === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | var x: Int | ||
+ | do { | ||
+ | print("Введите x > 0: ") | ||
+ | |||
+ | x = readLine()!!.toInt() | ||
+ | if (x <= 0) { | ||
+ | println("Неверный ввод.") | ||
+ | } | ||
+ | } while (x <= 0) | ||
+ | println("x = $x") | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Вывод 10 первых степеней двойки === | === Вывод 10 первых степеней двойки === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | var x = 2 | ||
+ | for (i in 1..10) { | ||
+ | println("2 ** $i = $x") | ||
+ | x *= 2 | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Вывод всех двухзначных чисел, кратных 5 === | === Вывод всех двухзначных чисел, кратных 5 === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | var x = 10 | ||
+ | while (x < 100) { | ||
+ | println(x) | ||
+ | x += 5 | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Вывод n первых чисел Фибоначчи === | === Вывод n первых чисел Фибоначчи === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | println("Введите число n (n > 1): ") | ||
+ | val n: Int = readLine()!!.toInt() | ||
+ | var a: Int = 1 | ||
+ | var b: Int = 1 | ||
+ | print("$a $b ") | ||
+ | for (i in 1..n - 2) { | ||
+ | val tmp = a | ||
+ | a = b | ||
+ | b += tmp | ||
+ | print("$b ") | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти НОД(A,B), используя алгоритм Евклида: === | === Найти НОД(A,B), используя алгоритм Евклида: === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | println("Введите целое число A:") | ||
+ | var a: Int = readLine()!!.toInt() | ||
+ | println("Введите целое число B:") | ||
+ | var b: Int = readLine()!!.toInt() | ||
+ | |||
+ | while (b != 0) { | ||
+ | val tmp = a | ||
+ | a = b | ||
+ | b = tmp % b | ||
+ | } | ||
+ | println("НОД(A, B) = $a") | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти сумму цифр целого числа m === | === Найти сумму цифр целого числа m === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | println("Введите целое число m:") | ||
+ | val m: Int = readLine()!!.toInt() | ||
+ | |||
+ | var sum = 0 | ||
+ | var m1 = Math.abs(m) | ||
+ | while (m1 > 0) { | ||
+ | sum += m1 % 10 | ||
+ | m1 /= 10 | ||
+ | } | ||
+ | |||
+ | println("Сумма цифр числа $m равна $sum") | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти max из введенных чисел === | === Найти max из введенных чисел === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | print("Введите количество чисел: ") | ||
+ | val count: Int = readLine()!!.toInt() | ||
+ | var i = 0 | ||
+ | print("Введите число " + (i + 1) + ": ") | ||
+ | var num: Int = readLine()!!.toInt() | ||
+ | var max = num | ||
+ | |||
+ | i = 1 | ||
+ | while (i < count) { | ||
+ | print("Введите число " + (i + 1) + ": ") | ||
+ | num = readLine()!!.toInt() | ||
+ | if (num > max) { | ||
+ | max = num | ||
+ | } | ||
+ | i++ | ||
+ | } | ||
+ | |||
+ | println("Максимальное число = $max") | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти min, удовлетворяющее условию p(x) === | === Найти min, удовлетворяющее условию p(x) === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun p(x: Int): Boolean { | ||
+ | return x > 0 | ||
+ | } | ||
+ | fun main() { | ||
+ | print("Введите количество чисел: ") | ||
+ | val count: Int = readLine()!!.toInt() | ||
+ | |||
+ | var exists = false | ||
+ | var min = Int.MAX_VALUE | ||
+ | |||
+ | for (i in 0 until count) { | ||
+ | print("Введите число " + (i + 1) + ": ") | ||
+ | val num: Int = readLine()!!.toInt() | ||
+ | if (num < min && p(num)) { | ||
+ | min = num | ||
+ | exists = true | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (exists) { | ||
+ | println("Минимальное из чисел удовлетворяющих условию = $min") | ||
+ | } else { | ||
+ | println("Нет чисел, удовлетворяющих условию") | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Есть ли среди введенных число k? === | === Есть ли среди введенных число k? === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | var exists = false | ||
+ | |||
+ | print("Введите количество чисел: ") | ||
+ | val count: Int = readLine()!!.toInt() | ||
+ | |||
+ | print("Введите искомое число: ") | ||
+ | val k: Int = readLine()!!.toInt() | ||
+ | for (i in 0 until count) { | ||
+ | print("Введите число " + (i + 1) + ": ") | ||
+ | val num: Int = readLine()!!.toInt() | ||
+ | if (num == k) { | ||
+ | exists = true | ||
+ | break | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (exists) { | ||
+ | println("Число $k было введено") | ||
+ | } else { | ||
+ | println("Число $k не было введено") | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Является ли число N>1 простым? === | === Является ли число N>1 простым? === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | print("Введите число n > 1: ") | ||
+ | val n: Int = readLine()!!.toInt() | ||
+ | |||
+ | var isPrime = true | ||
+ | for (i in 2..Math.round(Math.sqrt(n.toDouble()))) { | ||
+ | if (n % i == 0L) { | ||
+ | isPrime = false | ||
+ | break | ||
+ | } | ||
+ | } | ||
+ | if (isPrime) { | ||
+ | println("Число $n является простым") | ||
+ | } else { | ||
+ | println("Число $n является составным") | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Разложение числа на простые множители === | === Разложение числа на простые множители === | ||
<syntaxhighlight lang="kotlin" line> | <syntaxhighlight lang="kotlin" line> | ||
+ | fun main() { | ||
+ | print("Введите число x > 1: ") | ||
+ | var x: Int = readLine()!!.toInt() | ||
+ | var i = 2 | ||
+ | print("$x = 1") | ||
+ | do { | ||
+ | if (x % i == 0) { | ||
+ | print(" * $i") | ||
+ | x /= i | ||
+ | } else { | ||
+ | i++ | ||
+ | } | ||
+ | } while (x != 1) | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия на 12:16, 8 июля 2021
Код программ
Сумма вводимых целых чисел
1 fun main() {
2 print("Введите число слагаемых: ")
3 val n = readLine()!!.toInt()
4
5 var sum = 0
6 for (i in 0 until n) {
7 print("Введите число " + (i + 1) + ": ")
8 val num: Int = readLine()!!.toInt()
9 sum += num
10 }
11
12 println("Сумма = $sum");
13 }
Произведение целых чисел
1 fun main() {
2 print("Введите число множителей: ")
3 val n = readLine()!!.toInt()
4
5 var product = 1.0
6 for (i in 0 until n) {
7 print("Введите множитель " + (i + 1) + ": ")
8 val num: Int = readLine()!!.toInt()
9 product *= num
10 }
11
12 println("Произведение = $product");
13 }
Сколько нечетных среди n введенных
1 import kotlin.math.abs
2
3 fun main() {
4 print("Введите количество чисел: ")
5 val n = readLine()!!.toInt()
6
7 var count = 0
8 for (i in 0 until n) {
9 print("Введите число " + (i + 1) + ": ")
10 val num: Int = readLine()!!.toInt()
11 if (abs(num % 2) == 1) {
12 count++;
13 }
14 }
15
16 println("Количество нечётных чисел = $count");
17 }
Защита от неверного ввода
1 fun main() {
2 var x: Int
3
4 do {
5 print("Введите x > 0: ")
6
7 x = readLine()!!.toInt()
8 if (x <= 0) {
9 println("Неверный ввод.")
10 }
11 } while (x <= 0)
12 println("x = $x")
13 }
Вывод 10 первых степеней двойки
1 fun main() {
2 var x = 2
3
4 for (i in 1..10) {
5 println("2 ** $i = $x")
6 x *= 2
7 }
8 }
Вывод всех двухзначных чисел, кратных 5
1 fun main() {
2 var x = 10
3
4 while (x < 100) {
5 println(x)
6 x += 5
7 }
8 }
Вывод n первых чисел Фибоначчи
1 fun main() {
2 println("Введите число n (n > 1): ")
3 val n: Int = readLine()!!.toInt()
4
5 var a: Int = 1
6 var b: Int = 1
7 print("$a $b ")
8 for (i in 1..n - 2) {
9 val tmp = a
10 a = b
11 b += tmp
12 print("$b ")
13 }
14 }
Найти НОД(A,B), используя алгоритм Евклида:
1 fun main() {
2 println("Введите целое число A:")
3 var a: Int = readLine()!!.toInt()
4 println("Введите целое число B:")
5 var b: Int = readLine()!!.toInt()
6
7 while (b != 0) {
8 val tmp = a
9 a = b
10 b = tmp % b
11 }
12
13 println("НОД(A, B) = $a")
14 }
Найти сумму цифр целого числа m
1 fun main() {
2 println("Введите целое число m:")
3 val m: Int = readLine()!!.toInt()
4
5 var sum = 0
6 var m1 = Math.abs(m)
7
8 while (m1 > 0) {
9 sum += m1 % 10
10 m1 /= 10
11 }
12
13 println("Сумма цифр числа $m равна $sum")
14 }
Найти max из введенных чисел
1 fun main() {
2 print("Введите количество чисел: ")
3 val count: Int = readLine()!!.toInt()
4
5 var i = 0
6 print("Введите число " + (i + 1) + ": ")
7 var num: Int = readLine()!!.toInt()
8 var max = num
9
10 i = 1
11 while (i < count) {
12 print("Введите число " + (i + 1) + ": ")
13 num = readLine()!!.toInt()
14 if (num > max) {
15 max = num
16 }
17 i++
18 }
19
20 println("Максимальное число = $max")
21 }
Найти min, удовлетворяющее условию p(x)
1 fun p(x: Int): Boolean {
2 return x > 0
3 }
4
5 fun main() {
6 print("Введите количество чисел: ")
7 val count: Int = readLine()!!.toInt()
8
9 var exists = false
10 var min = Int.MAX_VALUE
11
12 for (i in 0 until count) {
13 print("Введите число " + (i + 1) + ": ")
14 val num: Int = readLine()!!.toInt()
15 if (num < min && p(num)) {
16 min = num
17 exists = true
18 }
19 }
20
21 if (exists) {
22 println("Минимальное из чисел удовлетворяющих условию = $min")
23 } else {
24 println("Нет чисел, удовлетворяющих условию")
25 }
26 }
Есть ли среди введенных число k?
1 fun main() {
2 var exists = false
3
4 print("Введите количество чисел: ")
5 val count: Int = readLine()!!.toInt()
6
7 print("Введите искомое число: ")
8 val k: Int = readLine()!!.toInt()
9
10 for (i in 0 until count) {
11 print("Введите число " + (i + 1) + ": ")
12 val num: Int = readLine()!!.toInt()
13 if (num == k) {
14 exists = true
15 break
16 }
17 }
18
19 if (exists) {
20 println("Число $k было введено")
21 } else {
22 println("Число $k не было введено")
23 }
24 }
Является ли число N>1 простым?
1 fun main() {
2 print("Введите число n > 1: ")
3 val n: Int = readLine()!!.toInt()
4
5 var isPrime = true
6 for (i in 2..Math.round(Math.sqrt(n.toDouble()))) {
7 if (n % i == 0L) {
8 isPrime = false
9 break
10 }
11 }
12
13 if (isPrime) {
14 println("Число $n является простым")
15 } else {
16 println("Число $n является составным")
17 }
18 }
Разложение числа на простые множители
1 fun main() {
2 print("Введите число x > 1: ")
3 var x: Int = readLine()!!.toInt()
4
5 var i = 2
6 print("$x = 1")
7 do {
8 if (x % i == 0) {
9 print(" * $i")
10 x /= i
11 } else {
12 i++
13 }
14 } while (x != 1)
15 }