Алгоритмы (Kotlin)

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску

Код программ

Сумма вводимых целых чисел

 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 }