ээээ.... Сергей, а оформление какими средствами? (лихорадочно думает, как бы отмазаться) html я не знаю или что-то другое имеется в виду?
кроме того, я чуть поторопился - Михаил обещал еще квадратный корень добавить и, кстати, добавлю, если и не совет для Михаила, то просто имхо: хорошо бы эту библиотечку реализовать через модуль класса.
ээээ.... Сергей, а оформление какими средствами? (лихорадочно думает, как бы отмазаться) html я не знаю или что-то другое имеется в виду?
кроме того, я чуть поторопился - Михаил обещал еще квадратный корень добавить и, кстати, добавлю, если и не совет для Михаила, то просто имхо: хорошо бы эту библиотечку реализовать через модуль класса.ikki
помощь по Excel и VBA ikki@fxmail.ru, icq 592842413, skype alex.ikki
еще вариант макроса, относительно быстрый, правда с выводом не заморачивался можно даже посчитать 10000! необходимо только размер массива увеличить:
[vba]
Code
Sub Main() Dim a&(9999), i&, j&, b&, c&, l&, n& n = 200 a(0) = 1 For i = 1 To n j = -1 While j < l Or c > 0 j = j + 1 b = a(j) * i + c a(j) = b Mod 10 c = b \ 10 Wend l = j Next For i = 0 To l Debug.Print a(l - i) & ""; Next End Sub
[/vba]
еще вариант макроса, относительно быстрый, правда с выводом не заморачивался можно даже посчитать 10000! необходимо только размер массива увеличить:
[vba]
Code
Sub Main() Dim a&(9999), i&, j&, b&, c&, l&, n& n = 200 a(0) = 1 For i = 1 To n j = -1 While j < l Or c > 0 j = j + 1 b = a(j) * i + c a(j) = b Mod 10 c = b \ 10 Wend l = j Next For i = 0 To l Debug.Print a(l - i) & ""; Next End Sub
Немного изменил длинную арифметику, добавил в тип данных длину числа, теперь стало считать значительно быстрее Что очень заметно на задаче о счастливых билетах
Немного изменил длинную арифметику, добавил в тип данных длину числа, теперь стало считать значительно быстрее Что очень заметно на задаче о счастливых билетахMCH
Немного изменил длинную арифметику, добавил в тип данных длину числа, теперь стало считать значительно быстрее Что очень заметно на задаче о счастливых билетах
Как же сложно реализуется длинная арифметика на VBA В частности, "задача о счастливых билетах" из предыдущего поста можно переписать на Python, где длинная арифметика встроена, решение относительно короткое: [vba]
Код
n = int(input()) // 2 # число знаков в каждой подгруппе max_sum = 9 * n # максимально возможная сумма цифр array = [1] + [0] * max_sum # массив для динамического программирования, стартовое значение for _ in range(n): new_array = [1] + [0] * max_sum for i in range(max_sum): new_array[i + 1] = new_array[i] + array[i + 1] # определяем новое значение массива if i >= 9: new_array[i + 1] -= array[i - 9] array = new_array.copy() print(sum(i * i for i in array))
[/vba] PS: задача взята с сайта ACMP задача № 100 Первая задача, которую я решил на этом сайте (прошло уже почти 12 лет) Решение на бейсике, включая длинную арифметику, занимает 130 срок кода и почти 2000 символов (без учета пробелов), что более чем в 10 раз больше решения на питоне
Немного изменил длинную арифметику, добавил в тип данных длину числа, теперь стало считать значительно быстрее Что очень заметно на задаче о счастливых билетах
Как же сложно реализуется длинная арифметика на VBA В частности, "задача о счастливых билетах" из предыдущего поста можно переписать на Python, где длинная арифметика встроена, решение относительно короткое: [vba]
Код
n = int(input()) // 2 # число знаков в каждой подгруппе max_sum = 9 * n # максимально возможная сумма цифр array = [1] + [0] * max_sum # массив для динамического программирования, стартовое значение for _ in range(n): new_array = [1] + [0] * max_sum for i in range(max_sum): new_array[i + 1] = new_array[i] + array[i + 1] # определяем новое значение массива if i >= 9: new_array[i + 1] -= array[i - 9] array = new_array.copy() print(sum(i * i for i in array))
[/vba] PS: задача взята с сайта ACMP задача № 100 Первая задача, которую я решил на этом сайте (прошло уже почти 12 лет) Решение на бейсике, включая длинную арифметику, занимает 130 срок кода и почти 2000 символов (без учета пробелов), что более чем в 10 раз больше решения на питонеMCH