Нужна помощь с кодом на swift
Если переводить на русский язык - дан массив, в нем каждому элементу меньше или равному максимального надо дать +3 от заранее заданной суммы. Остаток от суммы пойдет в минимальный элемент в итоге. Найти сумму элементов ниже максимального
import Foundation
func getResult(cash: [Int], s: Int) -> Int {
var max = 0, min = 0
var c = 0, c1 = 0
var cash1 = cash
while s > 2 {
for i in 0..<cash1.count {
if cash1[i] >= cash1[+1] {
max = cash1[i]
}
}
for i in 0..<cash1.count {
if cash1[i] < max {
cash1[i] = cash1[i] + 3
}
}
for i in 0..<cash1.count {
if cash1[i] < cash1[i+1] {
min = i
}
}
cash1[min] += s
for i in 0..<cash1.count {
if cash1[i] >= cash1[i+1] {
max = cash1[i]
}
}
for i in 0..<cash1.count {
if cash1[i] <= max {
c += 1
}
}
for i in 0..<cash1.count {
if cash1[i] > 0 {
c1 += 1
}
}
}
return c1-c
}
В свифте только начинаю разбираться, задача оказалась не по силам Выдает ошибки самых разных сортов, need help
(Версия swift 5.4)
Ответы (1 шт):
Автор решения: Oleg Soloviev
→ Ссылка
Вы проверяете <cash1.count, но затем увеличиваете значение индекса в cash1[i+1], поэтому выходите за рамки массива. Плюс у вас пропущено i в cash1[+1]
По самой задаче - вам нужно сохранять значение массива в переменную и сравнение выполнять с ней, а не со следующим элементом массива.