Roman numerals are much more complicated and much less consistent
than most people realise.�� The regular M DC LX VI system is both
more modern and less capable than anything the Romans would have
recognised.�� In particular,
��- in the 8th century, N (short for "nulla") was adopted for zero
��- the Roman system always had fractions like S for 1/2, . for 1/12
��- there were numerals for much larger numbers.
Unicode code block [2150] has characters for the Roman numerals
including
216C L ROMAN NUMERAL FIFTY
216D C ROMAN NUMERAL ONE HUNDRED
216E D ROMAN NUMERAL FIVE HUNDRED
216F M ROMAN NUMERAL ONE THOUSAND
2181 ��� ROMAN NUMERAL FIVE THOUSAND
2182 ��� ROMAN NUMERAL TEN THOUSAND
2187 ��� ROMAN NUMERAL FIFTY THOUSAND
2188 ��� ROMAN NUMERAL ONE HUNDRED THOUSAND
(In fact these are ligated versions of forms using "apostrophic" brackets;
the pattern goes as high as you want, e.g., (((|))) for a million.
D and M were originally |) and (|).���� There is

So the first thing is to make sure that you understand the
requirements for the problem.
- Are you required to produce ASCII characters, required to
�� produce Unicode ones, or allowed to produce either?
- Are you required to support zero?
- Are you required to support n/12 fractions (1<=n<=11)?
- Are you allowed, required, or forbidden to use the "overline"
�� convention, where an overline means "multiply by 1000"?
�� =-------
�� ICCXXXIVDLXVII = 1,234,567
- Are you allowed, required, or forbidden to use "additive"
�� form "IIII" as well as/instead of "subtractive" form "IV"?
- Are you to use upper case or lower case letters?
- And so on.

I am not happy with the way that (0 printStringRoman) quietly
produces ''.

Assuming you're generating regular modern Roman numbers,
you pretty much have to think of an integer as having 4 parts:
n // 1000���������� -- this many copies of M
n // 100 \\ 10 -- hundreds using M, D, C
n // 10 \\ 100 -- tens using�������� C, L, X
n \\ 10�������������� -- units using������ X, V, I

If Squeak/Pharo's (0 printStringRoman) would answer 'N'
instead of '' I'd be happier with it.

While you really want to write your own code --- this
being an exercism task --- it would be a very good idea
to start by using #printStringRoman so that you know
what it's like to pass the tests.



On Fri, 18 Sep 2020 at 04:58, Roelof Wobben via Pharo-users <pharo-users@lists.pharo.org> wrote:
Hello,

The challenge is to do it manually.
But I can take a look how that function is implented.

Roelof



Op 17-9-2020 om 18:13 schreef Aliaksei Syrel:
Hi Roelof,

You will not believe!

2��printStringRoman ���II���
Have fun!

On Thu, 17 Sep 2020 at 18:20, Roelof Wobben via Pharo-users <pharo-users@lists.pharo.org> wrote:
Hello,



Can someone help me with a good plan to convert numbers to roman numbers.



I could make a dictionary with 1,4,5,9,10,99,100, 999, 1000 but that

feels like a overkill.



Regards,



Roelof

--
Cheers,
Alex