일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- open weather map
- mp3
- #Project Euler
- Radio
- 대칭수
- 프로젝트 오일러
- C언어
- palindrome
- 배수 더하기
- #소수판별
- API
- project euler
- 피보나치
- #c언어
- PiFaceCAD
- Raspberry Pi
- 소인수 구하기
- #프로젝트 오일러
- 라즈베리파이
- 최소공배수
- lirc
- Today
- Total
ㅇㅅㅇ
Problem 4 앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다. 두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다. 세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까? 풀이 이제 문제가 조금씩 난이도가 증가하는 느낌이 든다. 프로그래밍 적으로 대칭수를 판별하는 것이 이번 문제의 핵심인 듯 하다. 방법에는 여러가지가 있을 수 있다. 그중에서 숫자를 나누기연산을 통해 12345를 54321로 뒤집어주는 방법과 12345를 문자열로 만드는 방법이 많이 사용된다. 나는 두번째 방법과 비슷하게 int형 배열을 만들어서 문제를 해결하였다. check_palindrome 이라는 함수를 만들어서 대칭수를..
Problem 3 어떤 수를 소수의 곱으로만 나타내는 것을 소인수분해라 하고, 이 소수들을 그 수의 소인수라고 합니다.예를 들면 13195의 소인수는 5, 7, 13, 29 입니다.600851475143의 소인수 중에서 가장 큰 수를 구하세요. 풀이 보통 프로그래밍을 배우는 과정에서 "소수를 판별하는 법" 같은건 한번씩 거치는 과정이라 거기에 얽매이면 안되는 문제중 하나이다. 나도 처음에는 별 생각없이 막 숫자 하나씩 증가시키면서 이게 소순지 아닌지 판단하는 코드를 작성했는데 돌리자마자 이건 아니라는걸 체감하고 바로 다시 작성했다(시간이 너무 오래 걸린다). 다시 문제를 살펴보면, 우리가 해야 할 건 소인수분해이다. 중학굔지 고등학굔지에서 배운 소인수 분해를 생각해보자 "15를 소인수분해 해라!" 라고하..
Problem 2 피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까? 풀이 피보나치 수열을 프로그래밍 언어로 구현할 때 크게 두가지가 있는데, while문이나 for문을 사용하는 방법이 있고 재귀함수를 사용하여 구현하는 방법이 있다. 반복문을 사용해서 바로바로 더해가는 것이 재귀함수를 사용하는 것보다 빠르지만, 갑자기 재귀함수가 써보고 싶어서 재귀함수로 구현하였다. 아직까진 머리를 쓰는 것보다는 손 스트레칭하는 듯한 난이도... 123456789101112131415161718192021222324int fi..