큰 숫자를 입력하게 하는 방식에 대한 아이디어를 좀 얻고 싶습니다.
우주
질문 제목 : 큰 숫자의 입력 및 출력
int 형 변수로 저장이 안되는 큰 숫자를 class와 link list 를 이용하여 저장하고 출력하기
질문 내용 :
int형 변수의 경우에는 아주 큰 숫자는 저장하기 힘든데
이를 class와 linklist를 이용해서 숫자를 입력받고
출력도 가능하게 할 수 있는
아이디어좀 부탁드립니다.
-
나예
모든 분들 답변 감사드립니다~
-
꽃초롱
문자 하나씩 노드에 넣고 계산하는 것은 너무 손해라는 생각이 들구요.
노드 하나당 0~999999999 의 숫자를 넣어서 10억진법을 구현해보세요. -
우미
위에분 말씀데로 문자열을 이용하는개 좋을듯??
클래스를 만들고 연산자 오버로딩까지 하면 되죠.
예를 들어서
class BigN
{
char m_strN[200]; //대략 200자릿수까지 가능
int m_nFirst; //200칸의 배열중 수가 시작되는 포지션(우측정렬로 가정)
}
이렇게 클래스를 선언해놓구 +,- 의 연산자를 저 클래스에 대해 오버로딩 해두면 되죠..
흠.. 그런데 곱셈까지는 몰라도 나눗셈의 연산을 어떻게 정해야할지...음 -
채꽃
itoa(배열 , 정수)
배열[0~정수까지] 하나씩입력
반복
strcat(큰배열 , 정수받은배열);
아니면 그냥 처음부터 문자열로 숫자입력받으세요 ㅎㅎ -
보아라
그래서 좀 많이 까다로운 문제에요 ㅠ
-
마징가
입력 받고 출력하는 것이야,
문자열에서 하나씩 읽어와서 노드에 저장하는 형태로 리스트를 확장해 나가면 되겠지만,
이 숫자를 연산하는데 사용한다면, 리스트 처리가 여간 번거로운 일이 아닐텐데요. -
중독된
특별한 이유 보다는 수업시간에 배운 내용이어서 시험에 활용하는거 같은데
숫자를 하나씩 쪼개서 노드에 저장해서 노드를 연결한다음
출력하거나 더하는거 같은데, 구체적인 방법이 잘 안떠올라서요 ㅠ -
도래
linked list를 사용하는 특별한 이유가 있나요?