Advertisement
selebry

cfdsfsd

Sep 28th, 2023
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.78 KB | None | 0 0
  1. fun main() {
  2.  
  3. }
  4. fun task1(){
  5. val N = readLine()?.toInt() ?: return // Вводим размер матрицы N
  6. val matrix = Array(N) { IntArray(N) } // Создаем двумерный массив
  7.  
  8. // Вводим элементы матрицы
  9. for (i in 0 until N) {
  10. val row = readLine()?.split(" ")?.map { it.toInt() } ?: return
  11. if (row.size != N) {
  12. println("Матрица должна быть размером $N x $N")
  13. return
  14. }
  15. matrix[i] = row.toIntArray()
  16. }
  17.  
  18. val result = isSymmetric(matrix, N)
  19. println(result)
  20. }
  21.  
  22. fun isSymmetric(matrix: Array<IntArray>, N: Int): Boolean {
  23.  
  24. // Проверяем симметрию относительно побочной диагонали
  25. for (i in 0 until N) {
  26. for (j in 0 until N) {
  27. if (matrix[i][j] != matrix[N - 1 - j][N - 1 - i]) {
  28. return false
  29. }
  30. }
  31. }
  32. return true
  33. }
  34. fun task2() {
  35. val weeklyNorms = readWeeklyNorms()
  36. val weeklyConsumption = readWeeklyConsumption()
  37.  
  38. val result = checkNutrientIntake(weeklyNorms, weeklyConsumption)
  39.  
  40. println(result)
  41. }
  42.  
  43. fun readWeeklyNorms(): IntArray {
  44. val norms = IntArray(3)
  45.  
  46. print("Введите недельную норму белков: ")
  47. norms[0] = readLine()!!.toInt()
  48.  
  49. print("Введите недельную норму жиров: ")
  50. norms[1] = readLine()!!.toInt()
  51.  
  52. print("Введите недельную норму углеводов: ")
  53. norms[2] = readLine()!!.toInt()
  54.  
  55. return norms
  56. }
  57.  
  58. fun readWeeklyConsumption(): Array<IntArray> {
  59. val weeklyConsumption = Array(7) { IntArray(3) }
  60.  
  61. for (day in 1..7) {
  62. print("Введите потребление белков в день $day: ")
  63. weeklyConsumption[day - 1][0] = readLine()!!.toInt()
  64.  
  65. print("Введите потребление жиров в день $day: ")
  66. weeklyConsumption[day - 1][1] = readLine()!!.toInt()
  67.  
  68. print("Введите потребление углеводов в день $day: ")
  69. weeklyConsumption[day - 1][2] = readLine()!!.toInt()
  70. }
  71.  
  72. return weeklyConsumption
  73. }
  74.  
  75. fun checkNutrientIntake(weeklyNorms: IntArray, weeklyConsumption: Array<IntArray>): String {
  76. val totalConsumption = IntArray(3)
  77.  
  78. for (day in 0 until 7) {
  79. for (nutrient in 0 until 3) {
  80. totalConsumption[nutrient] += weeklyConsumption[day][nutrient]
  81. }
  82. }
  83.  
  84. return if (totalConsumption[0] <= weeklyNorms[0] &&
  85. totalConsumption[1] <= weeklyNorms[1] &&
  86. totalConsumption[2] <= weeklyNorms[2]
  87. ) {
  88. "Отлично"
  89. } else {
  90. "Нужно есть поменьше"
  91. }
  92. }
  93. fun task3() {
  94. val words = arrayOf("apple", "banana", "apple", "cherry", "banana", "apple")
  95. val k = 2
  96. val result = kMostFrequentWords(words, k)
  97. println(result) // Выведет: [apple, banana]
  98. }
  99. fun kMostFrequentWords(words: Array<String>, k: Int): List<String> {
  100. // Создаем словарь для подсчета частоты встречаемости слов
  101. val wordCount = mutableMapOf<String, Int>()
  102.  
  103. // Подсчитываем частоту слов в массиве
  104. for (word in words) {
  105. wordCount[word] = wordCount.getOrDefault(word, 0) + 1
  106. }
  107.  
  108. // Сортируем слова сначала по убыванию частоты, а затем по убыванию лексикографического порядка
  109. val sortedWords = wordCount.entries.sortedWith(compareBy({ -it.value }, { it.key }))
  110.  
  111. // Выбираем первые k слов
  112. val result = sortedWords.take(k).map { it.key }
  113.  
  114. return result
  115. }
  116.  
  117.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement