1
0
Fork 0

Add /r/dailyprogrammer Challenge #306 Easy

This commit is contained in:
Nguyễn Gia Phong 2017-08-10 20:34:06 +07:00
parent 4051a87fc1
commit 14f5f67c1b
2 changed files with 50 additions and 0 deletions

24
daily/306easy/README.md Normal file
View File

@ -0,0 +1,24 @@
# [[2017-03-13] Challenge #306 [Easy] Pandigital Roman Numbers](https://www.reddit.com/r/dailyprogrammer/comments/5z4f3z/20170313_challenge_306_easy_pandigital_roman/)
## Description
1474 is a pandigital in Roman numerals (MCDLXXIV). It uses each of the symbols
I, V, X, L, C, and M at least once. Your challenge today is to find the small
handful of pandigital Roman numbers up to 2000.
## Output Description
A list of numbers. Example:
1 (I), 2 (II), 3 (III), 8 (VIII) (Examples only, these are not pandigital Roman numbers)
## Challenge Input
Find all numbers that are pandigital in Roman numerals using each of the
symbols I, V, X, L, C, D and M *exactly* once.
## Challenge Input Solution
1444, 1446, 1464, 1466, 1644, 1646, 1664, 1666
See [OEIS sequence A105416](http://oeis.org/A105416) for more information.

View File

@ -0,0 +1,26 @@
uses strutils;
var
i: int16;
function ivxlcdm(s: string): boolean;
var
a: array['C'..'X'] of int8;
c: char;
begin
for c in 'IVXLCDM' do
a[c] := 0;
for c in s do
inc(a[c]);
for c in 'IVXLCDM' do
if a[c] <> 1 then
exit(false);
ivxlcdm := true
end;
begin
for i := 1000 to 2000 do
if ivxlcdm(inttoroman(i)) then
writeln(i)
end.