|
기존 컴퓨터 시스템으로 지원되지 않는 큰 범위의 실수 혹은 정수를 저장/연산할 수 있는 클래스를 만들라는 것 같네요.
예를 들어... signed long int 가 ~21억 ~ 21억 범위 정도잖아요? 256조라든가...2경3627조..혹은
유효자리수가 훨씬 더 많은 소수까지 표현할 수 있는 클래스...물론 출력도 지원을 해야하구요..
제가 예전에 선배형님이 문제를 내주셔서 이런 비슷한 클래스를 tc++로 짜본적이 있거든요.
그때가 한 7~8년 전인거 같은데.. 사칙연산 다 되고.. 근데 정수만 처리했던게 다르다면
다른 결과인듯 싶습니다.. 그걸 짜게 만들었던 선배형의 문제가...
1*2*3*4*5*...*99*100
을 처리하여 답변을 출력하는 문제였던것 같네요. (기억이 가물..) 답의 수가 워낙 커서..
한 200여자리 이상 됐던것 같네요. 지금도 어딘가 찾아보면 소스가 있을지도..
-locke
ps: 클래스의 초기화는 정수로 하고.. 나누셈등의 연산시 유효자리와 범위가 더 큰 실수의 결과값을 리턴하는 함수를 추가로 구현하라는 얘기아닌가요?
박희중 님이 쓰신 글 :
: 다름이 아니라...밑에 나온 문제가 정확히 무슨말을 하는지 잘 몰라서 그럽니다.
: 어떻게 하라는건지 문제 해석이나 실행을 시킬때 어떻게 하는지만 좀 가르쳐 주세요.
: 솔직히 숙제 입니다만..숙제를 대신 해 달라고 하는게 아니라..
: 어떻게 하는지만 읽어 보시고 힌트나 아님 문제의 정확한 해석만이라도
: 해 주셨으면 합니다.
:
: 2002. 05. 12.
:
: * 개요
: 1. 큰 정수를 처리하기 위한 클래스를 정의한다.
: 2. 이 클래스는 다양한 연산과 멤버 함수들을 제공한다.
: 3. 큰 소수를 얻을 수 있는 함수를 구현한다.
:
: * 처리 방식
: 1. main() 함수는 기본적으로 함수 f()를 호출한다. 이 함수는 별도로 제공되는 파일에 포함되어 있으며 제출된 프로그램과 분리컴파일/링크/실행된다.
: 2. 클래스의 이름은 Number로 한다.
:
: * 클래스의 골격
: 1. 클래스 멤버 변수의 구성은 프로그래머에게 맡긴다.
: 2. 생성자와 소멸자를 제공한다.
: 가. Number n(30); /* 정수 30을 의미 */
: 나. unsigned a[10]={1,2,3,4,5,6}; Number m(5,a);
: /* 1*2^4L + 2*2^3L + 3*2^2L + 4*2^L + 5 */
: /* L 은 프로그래머가 직접 정의할 필요가 없음 */
: 다. Number k(n); Number k=n /* 복사 생성자 */
: 3. 기본적으로 제공되어야 할 연산자
: 가. 사칙연산 및 나머지 연산
: 나. 증감연산
: 다. 대소비교
: 라. 표준출력
: 4. 기본적으로 제공되어야 할 멤버함수
: 가. int isprime() : 객체가 소수이면 1, 아니면 0
: 나. Number prime(int k); k 번째 소수를 반환
: 다. Number primes(Number n); n 이하의 소수의 개수
:
:
: 한달 전에 나온건데..1번은 나름대로 풀었는데..
:
: 2번째 문제는 문제 해석이 제대로 되지 않아 아직 손을 못대고 있습니다..
:
: 어떻게 해석을 해야 하는지 좀 가르쳐 주세요..
:
: 나름대로는 숫자를 넣으면 그게 소수인지 판단 하라는 프로그램이라 생각하는데....
:
: 도저히 그게 아닌거 같아 이렇게 질문 합니다..
:
: 소수 판별인데..그 숫자가 큰 숫자를 다루라는 말인가요??
:
: 아..그리고 하나만 더...
:
: 256진법으로 숫자를 다룰때..어떻게 해야 합니까..
:
: 조금의 힌트만이라도 좀 가르쳐 주세요..
:
: 그럼 좋은 하루 되세요..
:
:
|