C를 이용.. 엄청 큰 계산의 결과를 출력하는 방법이요..^^;;
원술
2023.04.01
사실.. 저번에도 한번 이런 비슷한 문제에 부딪히곤 했는데..
고수님들의 다른 견해가 혹시나 있나해서 여쭈어 봅니다..
문제는 Time Complexity를 비교하자는 것인데요..
그중 하나가..
int Number1(int n)
{
int i, j;
int temp1 = 1;
int temp2 = 1;
for(i = 0; i n; i++)
{
temp1 = temp1 * 2;
}
for(i = 0; i temp1; i++)
{
temp2 = temp2 * 2;
}
return temp2;
}
의 Time Complexity는 2^2^n 해서.. 결국 2^n으로 되잖아요..
근데 n의수가 10이상으로 커지면서.. 이 수가 엄청나게 커지잖아요,..
그래서 int의 계산보다 double을 이용하면 조금은 더 담을수 있지만 큰 효과는 없죠..
아주 큰자릿수의 자리를 출력하기위해 어떻게 해야할까요??
문자열의 형태로 담아놓고.. 문자열로 출력을 하는게 될까요??
아니면..계산 내용만 변수에 담겼다면.. %연산자로.. 끝자리부터 찍어도 되긴될텐데..
조언 부탁드립니다.. ^^;
-
은별
큰정수를 c에서표현 하려면 보통 unsigned long을 사용합니다. 그리고, 그보다 큰수라면, visual c++에서는 __int64로 64비트형 정수를 표현할수 있는 자료형을 제공한답니다. 참고하세요.