|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Konstantin Osmehin 2:5020/400 06 Mar 2002 17:49:31 To : Illarion Kovalchuk Subject : Re: римские цифры -------------------------------------------------------------------------------- "Illarion Kovalchuk" <Illarion.Kovalchuk@f117.n467.z2.fidonet.org> wrote in message news:1015357529@f117.n467.z2.ftn... > #open console ~C [05 Mar 02, 19:44] > #mail All > > Поделитесь алгоритмом записи числа в римских цифрах. > > #np: YELLO - Monolith program Project1; {$APPTYPE CONSOLE} const MaxSyms=7; alph:array[1..MaxSyms] of record c:char;v:integer;end= ((c:'I';v:1),(c:'V';v:5),(c:'X';v:10),(c:'L';v:50),(c:'C';v:100),(c:'D';v:50 0),(c:'M';v:1000)); {n>0} function GetNumberPresentation(n:integer):string; var i,j:integer; begin i:=1; while (i<=MaxSyms)and(n>alph[i].v) do i:=i+1; if i>MaxSyms then Result:=alph[i-1].c+GetNumberPresentation(n-alph[i-1].v) else if n=alph[i].v then Result:=alph[i].c else begin j:=i-1; while(j<>0)and((alph[i].v-alph[j].v)<>n) do j:=j-1; if j<>0 then Result:=alph[j].c+alph[i].c else Result:=alph[i-1].c+GetNumberPresentation(n-alph[i-1].v); end; end; begin Writeln(GetNumberPresentation(2024)); Readln; end. -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/64884ff864a0.html, оценка из 5, голосов 10
|