찰리의 놀이터

(C언어) 2의 N제곱 구하기 본문

알고리즘 공부

(C언어) 2의 N제곱 구하기

차알리 2021. 4. 11. 20:48

코린이의 관점에서 작성한 코드이고 조언이 있다면 댓글 부탁드립니다.

 

정수값 N이 주어질 때, 배열을 이용하여 2의 N제곱 의 값을 구하는 프로그램을 작성하시오.

 

입력 예 (input.txt)

100

출력 예 (output.txt)

1267650600228229401496703205376

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//2의 N제곱 수 구하기
//배열이며 수의 길이가 얼마나 되는지 모르기때문에 거꾸로 입력
//가장 작은 자릿수의 수가 제일 앞으로 감
int arr[200];
int main(void)
{
int len, n, i;
arr[0] = 1;
len = 0;
scanf("%d", &n);
while(n) //n이 0이 되면 종료
{
for(i=0;i<=len;i++) //모든 배열에 2를 곱하는 루프
{
arr[i] *= 2;
}
if(arr[len]>9) //자릿수가 늘어나면 len 증가
len++;
for(i=0;i<=len;i++) //두자리 수 일경우 한자리로 바꿈
{
if(arr[i]>9)
{
arr[i+1]++;
arr[i] = arr[i] % 10;
}
}
n--;
}
for(i=len;i>=0;i--)
{
printf("%d", arr[i]);
}
return 0;
}
view raw I60.c hosted with ❤ by GitHub