Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > ДЛЯ BOO(ДОПОЛНЕНИЕ) .перевод арабских в римские


Автор: Олег 7.10.2002, 21:42
Помогите написать прогу на c++ для перевода арабских зифр в римские и наоборот.4 обозначаеться как IIII,9 как VIIII ,исползуються I V X L C D M .
                    спасибо за помощь.

Автор: Baa 7.10.2002, 22:09
А вот прям в ту нить никак было дописать? :\

Автор: Олег 7.10.2002, 22:19
Я не знаю как вписать в ту нить.если у тебя Baa есть ответ то помоги.

Автор: Baa 7.10.2002, 22:22
Все, терь в эту нить пишем... той больше нет :)
Вообще, тебе надо было не в с++ писать, а в алгоритмику... не столь важно... посморим, что можно сделать

Автор: solrom 7.10.2002, 22:26
у меня зачет по c++ и нужно написать прогу на c++.

Автор: solrom 7.10.2002, 22:28
сделай доброе дело помоги.

Автор: Grey 8.10.2002, 00:44
Напиши правила образования римских цифр, я например их не помню нефига а искать лень. Тогда за программой дело не встанет.

Автор: solrom 8.10.2002, 00:53
1-I;4-IIII;5-V;9-VIIII;10-X;14-XIIII;15-XV;20-XX;50-L;90-LXXXX;100-C;
140-CXXXX;150-CL;400-CCCC;500-D;1000-M.МАКСИМАЛьНОЕ ЧИСЛО В ПРОГЕ-5000.
1-I
5-V
10-X
50-L
100-C
500-D
1000-M

Автор: Grey 8.10.2002, 02:40
Я так понял переводить нужно только целые числа.
Код

#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
const int M = 1000;
const int D = 500;
const int C = 100;
const int L = 50;
const int X = 10;
const int V = 5;
const int I = 1;
int nNum;
cout<<"Input number: ";
cin>>nNum;
int nM = nNum/M;
int nRemainM = nNum%M;
int nD = nRemainM/D;
int nRemainD = nRemainM%D;
int nC = nRemainD/C;
int nRemainC = nRemainD%C;
int nL = nRemainC/L;
int nRemainL = nRemainC%L;
int nX = nRemainL/X;
int nRemainX = nRemainL%X;
int nV = nRemainX/V;
int nRemainV = nRemainX%V;
int nI = nRemainV;
int i;
for(i = 0; i < nM; i++)
cout<<"M";
for(i = 0; i < nD; i++)
cout<<"D";
for(i = 0; i < nC; i++)
cout<<"C";
for(i = 0; i < nL; i++)
cout<<"L";
for(i = 0; i < nX; i++)
cout<<"X";
for(i = 0; i < nV; i++)
cout<<"V";
for(i = 0; i < nI; i++)
cout<<"I";
cout<<"\n";

return 0;
}

Автор: Vit 8.10.2002, 03:38
в rxlib уже есть функция перевода

Автор: MadMan 7.12.2003, 01:20
можно подробный алгоритм написание программыперевода в римские цифры
только 4 = IV, 9 = IX...


спасибо.

Автор: [ss]3L33T@ 7.12.2003, 07:24
2 Vit:
А что, самому слабо написать?
Все эти стандартные функции левой пяткой клепают и не оптимизируют.
К тому же от них происходит разжижение мозгов.
Надо самому мозгами шевелить.

Автор: <Spawn> 7.12.2003, 08:16
[ss]3L33T@ А зачем изобретать велосипед? Я не думаю, что в RxLib функции "пяткой клепают". Разве что только для собственного самообразования попробовать ее переписать, а если ты в каком нить своем проекте, который нужно сделать в минимальные сроки, будешь переписывать все классы и функции, считая что их "пяткой клепают", то у тебя на него уйдет пару лет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)