#include <stdio.h>
void mult(int big[], int n) { // big[0] 에는 다음에 나오는 셀의 갯수가 있다. 만진법이다.
int i;
for(i=1;i<=big[0];++i) {
big[i]=n*big[i];
}
for(i=1;i<=big[0];++i) {
big[i+1]=big[i+1]+big[i]/10000;
big[i]=big[i]%10000;
}
if(big[i]) big[0]=i;
//printf("%d %d %d %d\n",big[0],big[1],big[2],big[3]);
}
int main() {
int i, n;
int fac[10001]={1, 1, 0,}; // 10000셀의 정수 십진수 40000 자리까지 나타낸다.
// 10000 팩토리얼 까지 구할수 있다.
printf("number: ");
scanf("%d", &n);
for(i=1;i<=n;++i) mult(fac, 2); // 여기서는 2의 누승을 구하고 있다.
printf("2^%d=%d", n, fac[fac[0]]);
for(i=fac[0]-1; i>0; --i) printf("%04d",fac[i]);
// printf(" ##%d", fac[0]);
return 0;
}
위의 프로그램은 아래 답변을 하기 위해서 고쳐본 것입니다.
------------------------------------------------------------------------------------
하노이탑 그거 64개를 옮길려면 몇 초가 걸릴까요?
(1개 옮길때마다 1초가 걸린다고 하면요)
빨리 가르켜 주셨으면 좋겠어요.
1844 6744 0737 0955 1615 초 걸립니다. (2의 64승 - 1)
천팔백사십사 경 육천칠백사십사 조 칠백삼십칠 억 구백오십오 만 천육백십오 초 걸리는 것입니다.
대개 5백8십1억년 정도 걸립니다.
'c·c++ > c 프로그래밍' 카테고리의 다른 글
2진수를 10진수로 바꾸기 (0) | 2013.05.31 |
---|---|
큰 정수의 곱셉 (0) | 2013.05.31 |
if없는 지그재그 출력 (0) | 2013.05.29 |
카운터 프로그램 (0) | 2013.05.29 |
속이 빈 마름모 (0) | 2013.05.29 |