프로젝트 오일러 17
프로젝트 오일러 17
1부터 5까지의 숫자를 영어로 쓰면 one, two, three, four, five 이고,
각 단어의 길이를 더하면 3 + 3 + 5 + 4 + 4 = 19 이므로 사용된 글자는 모두 19개입니다.
#include
void main()
{
int sum = 854; // 1부터 99까지 합
int num[9] = { 3, 3, 5, 4, 4, 3, 5, 5, 4 }; //백의 자리 글자 one 부터 nine 까지
long long i,part;
long long result=0;
for (i = 0; i < 9; i++) //one 부터 nine 까지 9번 반복
{
part = num[i] *100 + 997 + sum; // 백의 자리 글자 100번과 hundred and 99번과 hundred 1번과
result += part; 1~99까지 글자의 합(sum)
}
printf("%d\n", sum + result + 11 ); 1~99의 글자 합과 100~999의 글자 합과 one thousand 글자수
}
----------------------------------------------------------------------------
sum 을 처음에 864로 풀어서 오래 걸렸던 문제. fourty 가 아니라 forty 였구나..
프로그래밍과 영어를 함께 배울 수 있어서 좋았다.
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 글자가 됩니다.
-----------------------------------------------------------------------------참고: 빈 칸이나 하이픈('-')은 셈에서 제외하며, 단어 사이의 and 는 셈에 넣습니다.
예를 들어 342를 영어로 쓰면 three hundred and forty-two 가 되어서 23 글자,
115 = one hundred and fifteen 의 경우에는 20 글자가 됩니다.
#include
void main()
{
int sum = 854; // 1부터 99까지 합
int num[9] = { 3, 3, 5, 4, 4, 3, 5, 5, 4 }; //백의 자리 글자 one 부터 nine 까지
long long i,part;
long long result=0;
for (i = 0; i < 9; i++) //one 부터 nine 까지 9번 반복
{
part = num[i] *100 + 997 + sum; // 백의 자리 글자 100번과 hundred and 99번과 hundred 1번과
result += part; 1~99까지 글자의 합(sum)
}
printf("%d\n", sum + result + 11 ); 1~99의 글자 합과 100~999의 글자 합과 one thousand 글자수
}
----------------------------------------------------------------------------
sum 을 처음에 864로 풀어서 오래 걸렸던 문제. fourty 가 아니라 forty 였구나..
프로그래밍과 영어를 함께 배울 수 있어서 좋았다.
댓글
댓글 쓰기