2 / 2 / 1
Регистрация: 05.08.2017
Сообщений: 61
|
|
1 | |
Как во Free Pascal записать переменную в таком типе 10 в степени 1000006.10.2017, 14:59. Показов 894. Ответов 8
Метки нет (Все метки)
Собственно вот ссылка на задачу с условием: Ссылка удалена.
Использовал тип qword и uint64, решение прошло на 40%.
0
|
06.10.2017, 14:59 | |
Ответы с готовыми решениями:
8
Как записать уравнение в Free Pascal Как правильно записать в Free Pascal математическое выражение ln^2(x) Pascal записать sin x в степени Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET - в чем разница? |
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
06.10.2017, 15:36 | 2 |
Капинус, Я тебе писал что текст задания нужно напечатать в теме?
0
|
438 / 367 / 132
Регистрация: 09.09.2011
Сообщений: 1,334
|
|
07.10.2017, 13:50 | 3 |
Для целых чисел таких типов (встроенных) нет. Надо писать самому, либо длинную арифметику на массивах, либо на тех же массивах поддержку числе по основанию больше 10.
Судя по вопросу, это тема еще довольно продвинута для Вас. Если условия позволяют - используйте python или java там длинная арифметика в комплекте. Но скорее всего можно как-то оптимизировать алгоритм и не применять длинную арифметику (если задача учебная или олимпиадная).
0
|
2 / 2 / 1
Регистрация: 05.08.2017
Сообщений: 61
|
|
09.10.2017, 12:13 [ТС] | 4 |
Собственно вот и задача:
Рисунки на листочке в клеточку У Васи есть листочек в клеточку, состоящий из N клеток по горизонтали и M клеток по вертикали, причем линии клеток листочка на краю также видны. Сколько различных прямоугольников может на этом листочке нарисовать Вася, если рисовать он умеет только по линиям? Входные данные В единственной строке через пробел находятся два числа M и N. Все входные данные натуральные числа, не превышающие 1010000. Выходные данные Единственное число - искомое количество прямоугольников. Лимит времени 2 секунды Лимит использования памяти 64 MiB Входные данные 3 2 Выходные данные 18
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
09.10.2017, 13:06 | 5 |
натуральные числа, не превышающие 1010000.
Наверное в условии так?
0
|
2 / 2 / 1
Регистрация: 05.08.2017
Сообщений: 61
|
|
09.10.2017, 13:13 [ТС] | 6 |
да. спасибо за поправку
0
|
1642 / 1091 / 487
Регистрация: 17.07.2012
Сообщений: 5,345
|
||||||
15.10.2017, 02:41 | 7 | |||||
Хранить длинные числа не проблема. Вот только как с такими жуткими ограничениями задачу решать?
Если бы числа были маленькие, то скорее всего что-то такое прошло бы
Добавлено через 8 минут Хотя на самом деле все оказывается просто. Достаточно вывести формулу для ответа, выходит m * (m+1) / 2 * n * (n+1) / 2 и остается только написать длинную арифметику ну или воспользоваться готовой(если есть).
0
|
438 / 367 / 132
Регистрация: 09.09.2011
Сообщений: 1,334
|
|
17.10.2017, 00:10 | 8 |
Новичок, как Вы к такой формуле пришли?
0
|
1642 / 1091 / 487
Регистрация: 17.07.2012
Сообщений: 5,345
|
||||||
17.10.2017, 00:56 | 9 | |||||
Kitayets, возьмем код выше.
Вынесем (m - i + 1) за скобки, получим (m - i + 1)((n - 1 + 1) + (n - 2 + 1) + ... + (n - n + 1)) = (m - i + 1)(n + n - 1 + ... + 1) = (m-i+1) * n * (n+1) / 2 Но это формула для одной итерации i, а у нас i меняется от 1 до m. Меняя i получаем m * n * (n+1)/2 + (m-1) * n * (n+1)/2 + ... + 1 * n * (n+1)/2 = (m + m-1 + ... + 1) * n * (n+1) / 2 = m * (m+1) / 2 * n * (n+1) / 2
1
|
17.10.2017, 00:56 | |
17.10.2017, 00:56 | |
Помогаю со студенческими работами здесь
9
Как правильно записать в таком случае? Нужно записать лог bat-ника в переменную через программу в Pascal Нужно записать лог bat-ника в переменную через программу в Pascal В 10000 степени Как запустить Free Pascal Как работает Free Pascal в Windows 7 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |