Ссылка оригинальную статью
Ссылка Try Haxe!
Условие задачи:
В массиве $А(n)$ каждый элемент, кроме первого, заменить суммой всех предыдущих элементов.
Тесты:
Ввод | Вывод |
1 1 1 1 1 1 | 1 1 2 3 4 5 |
3 5 2 9 0 4 65 156 1 | 3 3 8 10 19 19 23 88 244 |
2 -7 3 8 -4 5 -2 4 2 | 2 2 -5 -2 6 2 7 5 9 |
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
class Main { static function main() { var n = getNextInt(); var a = new Array(); for (i in 0...n) { a[i] = getNextInt(); } var sum = a[0]; for (i in 1...a.length) { var tmp = a[i]; a[i] = sum; sum += tmp; } var output = Sys.stdout(); for (i in 0...n) { output.writeString(Std.string(a[i]) + " "); } } static function getNextInt() { var number = Sys.stdin().readLine(); return Std.parseInt(number); } } |
Ход решения:
Для начала заполняем массив числами, которые вводит пользователь. После этого начинаем заменять элементы в массиве суммой предыдущих элементов. Но для того, чтобы не заводить новый массив, нужно запомнить текущий элемент массива, чтобы не потерять его при нахождении суммы. Так происходит для каждого элемента