![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
![]()
Программа для подсчета суммы и разности 100 разрядных чисел.
Я пробовал написать программу используя массив char [100]. На мой взгляд коряво получилось. У кого есть идеи как по другому решить эту задачу.
Может это и чушь, но это моя чушь и я ее никому не отдам.
|
![]() |
![]() |
![]() |
#2 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
![]()
массив чисел
|
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
![]() Цитата:
При сложении я просто использовал поразрядную проверку если сумма разрядов больше 10 то единица переносится в следующий. Но это мне кажется очень топорно использовать массив char. А как вы предлагаете использовать массив чисел. Более детально алгоритм опишите. Исходники не принципиальны мне главное идея.
Может это и чушь, но это моя чушь и я ее никому не отдам.
|
|
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]() Цитата:
http://en.wikipedia.org/wiki/Binary-coded_decimal |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
![]()
Так как у меня с английским не очень, но кое что понял и на первый взгляд это не совсем то что я хотел бы узнать.
Наверное я не совсем правильно сформулировал. Суть задачи создание 100 разрядного числа. Но я считаю что использование например массива char[100] или массива char[50], при условии использования байта как 0-9 и 0-99 соответственно слишком топорно и уродливо. Нельзя ли создать тип данных для хранения 100 разрядного числа другим способом.
Может это и чушь, но это моя чушь и я ее никому не отдам.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,089
|
![]()
Называется это длинная арифметика. Решение в лоб: реализация сложения/вычитания в столбик, как делали в начальной школе.
Хранить можно как угодно, только вот суммировать проблематично потом будет, если с алгоритмом это не увязать. Последний раз редактировалось pu4koff; 11.01.2013 в 15:00. |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
![]() Цитата:
Пока кроме уродливого массива char идей никаких нет. ![]()
Может это и чушь, но это моя чушь и я ее никому не отдам.
|
|
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]() Цитата:
Четыре бита на десятичный разряд. А у Вас байт на разряд. Попробуйте битовые поля: Код:
|
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,089
|
![]()
зачем обязательно char? Чем он отличается от int в данном случае?
Тип тут можно любой выдумать, лишь бы он был кратен байту. Хотя есть даже bitset, но по сути там всё равно всё до байтов округляется при хранении. Так вот... Можно выделить нужное число байт под 100 разрядное число. Через двоичный логарифм это даже вычисляется легко. Только вот обрабатывать потом это дело будет неудобно, т.к. хранение то будет в двоичной системе, а операции основаны на десятичной. Пусть себе будет байт на один разряд, памяти всё равно копейки будет расходоваться по современным меркам, зато проще арифметические операции реализовывать будет. ЗЫ. Я так понимаю, что это учебная задача, поэтому особо заморачиваться тут не стоит. В реальном коде всё равно будут использоваться для этого проверенные временем библиотеки. |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
![]() Цитата:
Ясно. Значит у меня с английским еще хуже чем я думал. Но идею я понял. но это точно не будет оличаться если я один байт буду представлять как от 0 до 9)))
Может это и чушь, но это моя чушь и я ее никому не отдам.
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как узнать версию сервера? | Vit@L | БД в Delphi | 2 | 04.11.2011 16:54 |
Олимпиадная задача просто интересно решения | Pein95 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 14.12.2010 16:22 |
Узнать версию Indy из исходников | FreeBrain | Помощь студентам | 2 | 01.09.2010 19:49 |
Узнать версию WINDOWS | dimonbest | Win Api | 1 | 29.12.2008 12:07 |