순환소수 중에서 가장 긴 자리수는? (프로젝트 오일러 #26)
언뜻 보기엔 평범한 문제로 생각하기 쉽다.그냥 long double에다 대입한 뒤에 결과를 문자열 형식으로 출력해서 문자열을 비교하면 될 것 같은 생각착각이 든다. 그런데, 이 바닥 문제 중에 그런 만만한 건 없다. 이 문제의 요지는 아무리 긴 숫자도 일일이 나누어 저장하여, 순환 여부를 정확히 비교할 수 있는 코드를 만드는 것이다.순환 여부를 확인하려면 숫자를 나누면서 각 자리의 몫과 그 때의 나머지를 모두 저장하고 이를 모두 비교해야 한다. 아래의 divide() 함수가 이 기능을 수행하는 함수다.quotient[]에는 각 자리의 몫을, remain[]에는 해당 자리의 나머지를 저장한다. #include #include #include using namespace std; // a / b int di..