1부터 5까지의 숫자를 영어로 쓰면 one, two, three, four, five 이고,
각 단어의 길이를 더하면 3 + 3 + 5 + 4 + 4 = 19 이므로 사용된 글자는 모두 19개입니다.
1부터 1,000까지 영어로 썼을 때는 모두 몇 개의 글자를 사용해야 할까요?참고: 빈 칸이나 하이픈(‘-‘)은 셈에서 제외하며, 단어 사이의 and 는 셈에 넣습니다.
예를 들어 342를 영어로 쓰면 three hundred and forty-two 가 되어서 23 글자,
115 = one hundred and fifteen 의 경우에는 20 글자가 됩니다.
프로그래머 입장에서는 정말 귀찮은 문제;;
하지만 Number::Spell 모듈과 함께라면 참 좋다.
spell_number로 해당 숫자를 영어로 바꾸어준다.
그 다음은 그냥 세기만 하면 끝.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#!/usr/bin/env perl use 5.010; use strict; use warnings; use Number::Spell; my $r = 0; for (1..1000) { my $s = spell_number($_); $s =~ s/s+//g; $r += length($s); $r += 3 if ($_ > 100 && $_ % 100 != 0); } say $r; |