![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| simка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 26.11.2004 Репутация: нет Всего: нет |
Написать прогу перевода чисел из десятичной системы счисления в Римскую. Исходное число считывается из одного файла, а результат записывается в другой файл.
I-1;V-5;X-10;L-50:C-100;D-500;M-1000 |
|||
|
||||
| Intro |
|
|||
|
Unregistered |
Такая прога на олимпиаде была, там не решил, но дома разобрался... короче считывай char[] потом переводи в число, дальше разбирай с лево на право --- естественно перед элементом может стоять I поэтому обязательно это учитывай...
|
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Модератор: Название темы должно отражать ее суть!
--------------------
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Вот написал в обе стороны
Комментировать не стал, так как вроде и так всё ясно Кстати, я конечно не всё сам выдумывал уже готового в инете полно
|
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 2 Всего: 39 |
Короче код написанный для перевода рим->дес., работает в некоторых случаях не корректно, не предусмотрен случай когда идет вычитание при стоящем справа меньшем числе:
Так XIX - не 21, а 19. Алгоритм следующий: (писать код не буду, т.к. некогда, да и опыта мало, чтоб сделать это быстро и понятно) 1.Рассматриваем введеную строку с права налево. 2.Пишем функцию проверки(но можно включить и main()), которая будет принимать два char'a(можно указатели), и выдавать 1, если первый в римской сс, больше второго. Затем, можно воспользоваться тем, что предложил sergej.z , но только ставить условие, мол если следующий за текущем символом больше текущего, то не прибавлять десятичный эквивалент данного char'a, а отнимать его. Это сообщение отредактировал(а) Alexandr87 - 29.11.2004, 14:26 |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 2 Всего: 39 |
Вощем вроде вот, контроль вводимых значений делай сам
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |