4 / 4 / 0
Регистрация: 26.10.2014
Сообщений: 105
|
||||||
1 | ||||||
Выделение памяти под большие числа11.07.2017, 11:25. Показов 2283. Ответов 5
Метки нет (Все метки)
Всем привет!
Я являюсь поклонником шахмат, и вот, недавно услышал такую байку об этой игре: По легенде, когда создатель шахмат (по одним данным — древнеиндийский математик, по другим — легендарный дравид велалар по имени Сесса или Сисса) показал своё изобретение правителю страны, тому так понравилась игра, что он позволил изобретателю право самому выбрать награду. Мудрец попросил у короля за первую клетку шахматной доски заплатить ему одно зерно пшеницы (по другой версии — риса), за вторую — два, за третью — четыре и т. д., удваивая количество зёрен на каждой следующей клетке. (Википедия). Решил я на досуге написать алгоритм, который подсчитает количество зёрен на доске в соответствии с вышеописанными условиями:
для 64-х клеток доски количество зёрен получается настолько большим, что памяти, выделенной под хранение значений типа unsigned long long int, оказывается недостаточно для хранения результата функции 'Calculate()'. Не подскажете, каким образом можно обойти это ограничение? Спасибо!
0
|
11.07.2017, 11:25 | |
Ответы с готовыми решениями:
5
Выделение памяти под матрицу Выделение памяти под строку Выделение памяти под матрицу Выделение памяти под структуру |
Модератор
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,755
|
|
11.07.2017, 11:40 | 2 |
Alexey104, там же, на википедии
0
|
Заблокирован
|
||||||
11.07.2017, 12:49 | 3 | |||||
в школе столбиком учили складывать? размеры тех чисел ограничивались только габаритами тетради, числа не получите, а набор цифр будет
Добавлено через 40 минут
1
|
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
|
||||||||||||||||
11.07.2017, 14:26 | 4 | |||||||||||||||
Сообщение было отмечено Alexey104 как решение
Решение
Вспоминаем, что шахматная доска имеет 64 клетки. Также не забываем, что в первой клетке будет 1 зернышко.
Вот что получается: Тут «ого»
А это должно вместиться в unsigned long long .Вот простое решение ( втупую, как говорится ): Намбер ван
Вот более правильное: Намбер ту
Самое верное решение: Учимся шутить
Добавлено через 4 минуты Не по теме: Спойлером сломал киберфорум х)
1
|
Модератор
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,755
|
||||||
11.07.2017, 15:23 | 5 | |||||
кстати, да!
"Или, если хочешь, я скажу это проще"(с)
2
|
4 / 4 / 0
Регистрация: 26.10.2014
Сообщений: 105
|
|
11.07.2017, 16:44 [ТС] | 6 |
Всем спасибо за ответы!
И за юмор тоже! Ошибки в своём коде понял, почитал много нового, в общем, вопрос решён.
0
|
11.07.2017, 16:44 | |
11.07.2017, 16:44 | |
Помогаю со студенческими работами здесь
6
Выделение памяти под wchar_t Выделение памяти под структуру Выделение памяти под переменную Выделение памяти под указатель Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |