Posted By: Jovo () on 'CZprogram'
Title: Kde hledat
Date: Mon Dec 16 17:59:21 2002
Ahoj.
Hledal jsem algoritmus pro prevod Rimskych cisel na Arabska a pres Google
jsem narazil na paradni stranku, kde je snad vsechno:
http://www.planet-source-code.com/
Jovo.
PS: Brutus algoritmus pro R->A konverzi:
//**************************************
// Name: Convert_Roman_Nos.
// Description:THIS IS THE "FASTEST" ALGORITHM FOR CONVERSION OF ROMAN
NUMERALS INTO NUMBERS.IT WILL CONVERT ALL ROMAN NUMERALS INTO NUMBERS IN
RECORD TIME.IF ANY ONE KNOWS ANY FASTER METHOD PLEASE LET ME KNOW.
// By: Anirudh Wadhwa
//
//
// Inputs:None
//
// Returns:None
//
//Assumes:THIS PROGRAM WILL CONVERT ROMAN NUMERALS INTO NUMBERS REGARDLESS OF
THEIR CASE.XXIV = xxiv = 24
//
//Side Effects:None
//This code is copyrighted and has limited warranties.
//Please see
http://www.Planet-Source-Code.com/xq/ASP/txtCodeId.885/lngWId.3/qx/vb/scripts/S
howCode.htm
//for details.
//**************************************
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
//For Any Queries,MailMe themask99@yahoo.com
void main()
{
char a[15];
cout<<"Enter The Roman Number :";
cin>>a;
for(int x=0,p=0,flag=0,rom=0,int i=strlen(a)-1;i>=0;i--)
{
if (a[i]=='i' || a[i]=='I') x=1;
if (a[i]=='v' || a[i]=='V') x=5;
if (a[i]=='x' || a[i]=='X') x=10;
if (a[i]=='l' || a[i]=='L') x=50;
if (a[i]=='c' || a[i]=='C') x=100;
if (a[i]=='d' || a[i]=='D') x=500;
if (a[i]=='m' || a[i]=='M') x=1000;
if (x<p) flag = -1;
else flag = 1;
rom= rom + (x*flag);
p=x;//storing the previous value in x
}
cout<<"Numerical value is : "<<rom;
getch();
}