15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
|
||||||||||||||||
1 | ||||||||||||||||
Modular Calculator06.04.2015, 23:21. Показов 1641. Ответов 7
Метки нет (Все метки)
Всем доброго времени суток.
Вобщем задача следующая: Есть текстовый файл "data.txt" в котором есть следующие данные:
(5 * 50 + 193 + 8 * 9140 * 7286 + 498 * 8 + 32 * 72 * 4194 + 80 + 539 + 8 * 4739 * 3 * 2 * 4 * 80 * 3 * 2 * 62 + 1249 * 186 + 12 * 3308 * 5504 + 6 + 94 + 107 + 298 + 7 + 54 + 3 * 566 * 347 + 3375 * 59 * 9 + 460 + 11 * 22 + 6 * 761 + 432 * 76 * 9777 * 3009 + 40 * 48 * 50) % 7356 Приоритет операций тут не должен иметь место быть, все действия должны выполняются последовательно, что я и реализавал в своем коде ниже Вот мой код:
Не могу понять, где ошибка. Буду очень признателен, если кто-то мне поможет
0
|
06.04.2015, 23:21 | |
Ответы с готовыми решениями:
7
Calculator Calculator by Bjarne Stroustrup Ошибка в программе C++(calculator) Делаю Calculator |
20 / 20 / 14
Регистрация: 07.02.2015
Сообщений: 145
|
|
07.04.2015, 00:26 | 2 |
А в чем проблема-то? Код работает с вашим первым набором. На выходе число 264. Должно быть по-другому?
Конкретизируйте.
0
|
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
|
||||||
07.04.2015, 00:53 [ТС] | 3 | |||||
DISTURB, Не могу конкретизировать, так как потерял правильный ответ, но в любом случае, тот код, что меня, не работает по какой-то причине с большим количеством данных
Добавлено через 9 минут DISTURB, Прошу прощения, в вопросе указал не правельные данные. Вот данные для проверки:
Во втором случае, с маленьким количеством данных, все работает корректно, на выходе 1.
0
|
20 / 20 / 14
Регистрация: 07.02.2015
Сообщений: 145
|
|
07.04.2015, 01:13 | 4 |
Сообщение было отмечено Ilot как решение
Решение
После выполнения действия в 17 строке (*10) вы выходите за пределы диапазона unsigned long long.
Добавлено через 5 минут А для операций 1-51 число превысит диапазон в несколько тысяч раз. Данные, естественно, теряются.
0
|
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
|
|
07.04.2015, 01:16 [ТС] | 5 |
DISTURB, диапазон unsigned long long int = 18446744073709551615, а после 17 строки(*10) результат равен всего лишь 1910513414 или я не правильно посчитал?
0
|
20 / 20 / 14
Регистрация: 07.02.2015
Сообщений: 145
|
|
07.04.2015, 01:25 | 6 |
Leonman, у меня получилось 1.7408683e+20 (~1.7*10^20).
Это даже не суть важно, в какой строке. Попробуйте просто слагаемые откинуть, а оставшееся перемножить, для простоты. Явно за пределы выходит.
0
|
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
|
|
07.04.2015, 01:26 [ТС] | 7 |
DISTURB, да, вы правы. Что мне делать в таком случае, я не знаю типа данных, который может содержать большие числа
0
|
20 / 20 / 14
Регистрация: 07.02.2015
Сообщений: 145
|
|
07.04.2015, 01:35 | 8 |
Использовать длинную арифметику
1
|
07.04.2015, 01:35 | |
07.04.2015, 01:35 | |
Помогаю со студенческими работами здесь
8
Modular Calkulator Modular Grid Pattern BIOS Award Modular BIOS v6.00PG напрочь отказывается видеть загрузочную флэшку calculator calculator II Java calculator Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |