Project Euler #103 (Special subset sums: optimum)
문제는 https://projecteuler.net/problem=103그러나 사실 103번은 맛보기고 105번과 106번이 진짜 문제라고 할 수 있다. 103번은n = 1: {1} n = 2: {1, 2} n = 3: {2, 3, 4} n = 4: {3, 5, 6, 7} n = 5: {6, 9, 11, 12, 13} 에서A = {a1, a2, ... , an}라는 optimum set이 있을 때, 다음 optimum set은 B = {b, a1+b, a2+b, ... ,an+b}, (이때 b는 A의 중간 원소) 이라서n = 6 to be A = {11, 17, 20, 22, 23, 24}, with S(A) = 117 일 것 같은데 실제로는 n = 6 is A = {11, 18, 19, 20, 22, ..
2016. 9. 9.
Project Euler #104 (Pandigital Fibonacci ends)
문제는 https://projecteuler.net/problem=104, 언어는 C를 사용했다. 문제를 해석하자면 첫 9자리 숫자와 마지막 9자리 숫자가 pandigital(1~9까지 숫자가 하나씩 반드시 존재)이 되는 피보나치 숫자의 index를 구하는 문제이다. 코드를 요약하자면 각각이 자리수 N개를 저장 가능한 변수를 M개 사용하여 더하기를 구현하여 사용하는 것이다. 아래 코드에서는 long long (typedef로 ubint로 줄여서 사용) 의 범위가 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807임을 활용하여 0~(10^18 - 1), 즉 18자리를 이용하고 10^18를 overflow로 간주하여 사용할 것이다. 사실 ubint를 long l..
2016. 9. 9.