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 글자가 됩니다.
Click각 단어의 길이를 더하면 3 + 3 + 5 + 4 + 4 = 19 이므로 사용된 글자는 모두 19개입니다.
1부터 1,000까지 영어로 썼을 때는 모두 몇 개의 글자를 사용해야 할까요?
참고: 빈 칸이나 하이픈('-')은 셈에서 제외하며, 단어 사이의 and 는 셈에 넣습니다.
예를 들어 342를 영어로 쓰면 three hundred and forty-two 가 되어서 23 글자,
115 = one hundred and fifteen 의 경우에는 20 글자가 됩니다.
이것도 일반화를 해볼려다가 여러가지 생각해야 할게 너무 많아 그냥 포기.
각각의 수가 얼마나 들어가는지를 암산하여 각 수의 영어 알파벳 숫자와 곱해주었습니다.
<script> function p017(){ var nums = { 1: "one", 2: "two", 3: "three", 4: "four", 5: "five", 6: "six", 7: "seven", 8: "eight", 9: "nine", 10: "ten", 11: "eleven", 12: "twelve", 13: "thirteen", 14: "fourteen", 15: "fifteen", 16: "sixteen", 17: "seventeen", 18: "eighteen", 19: "nineteen", 20: "twenty", 30: "thirty", 40: "forty", 50: "fifty", 60: "sixty", 70: "seventy", 80: "eighty", 90: "ninety", 100: "hundred", 1000: "thousand" }; var l = 0;//46684//17524 var t = nums[100].length; //1의 자리 : 100당 9번씩 10번 + (100의자리) 100번 + (천의자리) 1만 1번. for (var i = 1; i < 10; i++) l += nums[i].length * ((9 * 10) + 100 + ((i == 1) ? 1 : 0)); //10~19 : 100당 1번씩 10번. for(var i=10; i<20; i++) l += nums[i].length * (1*10); //10의 자리 : 100당 10번씩 10번. for(var i=20; i<100; i+=10) l+= nums[i].length * (10*10); //100 : 100당 100씩 9번. l += nums[100].length * (100*9); //1000 : 1 번. l += nums[1000].length * 1; //and : 100당 99번씩 9번. l += "and".length * (99*9); return l; } </script>