BCD로 구현해본 Large sum (프로젝트 오일러 #13)
요즘 프로젝트 오일러에 필이 꽂혀 하나씩 풀어보고 있다.역시 흥미를 끄는 재미있는 문제들이 많다. 13번 문제는 50자리 숫자 100개를 더하는 문제다.이건 unsigned long long int 같은 데 때려박아봤자 답이 없고, 별도의 자료형을 만들거나 문자열 자체에서 연산을 해야 된다. 그런데, 갑자기 옛 생각(?)이 나서 BCD로 코딩해보고 싶어졌다.요즘은 거의 쓰이지 않는 것 같은데, MSX 시절에는 연산 속도를 끌어올리기 위해 BIOS 내에서도 사용됐던 인코딩이다.16진수 값을 그대로 10진수로 적용해서 비트의 낭비가 있다는 게 단점… #include #include #include // 50자리 숫자 100개. ㄷㄷㄷ const static char * nums[] = { "371072875..