제일 간단한 방법은 아래 방법인 듯.
#include <iostream> int square(int a, int b) { int res=1; for (int i=0; i<b; i++) { res=res*a; } return res; }인자로 밑인 a를 받고, 제곱수인 b를 받는 것임. 그리고 res라는 결과 값.res 결과 값에 a를 b번 곱하는 것이 됨. 따라서 square(10,3)인 경우 10^3이 되는 것임.
C언어 2의 거듭제곱 구하기
개발노트 2018. 9. 16. 15:21
1
2
3
4
5
6
7
printf("2 의 거듭제곱 구하기 \n");
printf("제곱할 수를 입력하세요. \n");
scanf("%d", &zgop);
printf("2의 %d제곱은 %d입니다.. \n",zgop, 1 << zgop);
cs거듭제곱을 구하는 방법은 크게 두가지 입니다.
위의 코드는 쉬프트연산을 사용해서 거듭제곱을 나타냈습니다.
쉬프트 연산(Shift Operation)이란 비트를 몇 칸씩 옆으로 이동하는 연산을 말한다.
green >> 5; -> green 변수의 값을 오른쪽으로 5비트 이동시킨다.
ex>
green : 0000001000100000
green >> 5 : 0000000000010001
반대로 << 는 왼쪽으로 비트를 이동한다
비트가 이동하면서 새롭게 채워지는 비트들은 0으로 채워진다.
하지만 음수의 값을 오른쪽으로 쉬프트 할 때는 1이 채워진다.
출처: //hyeonstorage.tistory.com/307 [개발이 하고 싶어요]
다른 방법에는 코드는 길지만 for문을 돌며 n번 곱해주는 방법이 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
printf("X 의 Y제곱 구하기 \n");
printf("제곱할 수를 입력하세요. \n");
scanf("%d", &zgop);
printf("제곱할 Y승을 입력하세요. \n");
scanf("%d", &Y);
for (a=0;a<Y;a++)
{
zgophap*=zgop;
}
printf("%d의 %d제곱은 %d입니다.. \n", zgop,Y, zgophap);
cs
공유하기
게시글 관리
구독하기여울의 노닥노닥저작자표시 비영리 변경금지
관련글 관련글 더보기
- C언어 약수, 소수, 제곱수, 완전수 구하기
- C언어 while, case문을 이용한 메뉴선택
- C언어 팩토리얼 구하기
- C언어 짝수와 홀수 구분하기
댓글 0
댓글 접기 댓글 펼치기이전 댓글 더보기
비밀글
등록
#include
#include
int main(int argc, char *argv[]) {
int i, n;
int sum=0;
printf("제곱의 합을 구할 n을 입력: ");
scanf("%d", &n); // %d 뒤에 /n 넣으면 아무키나 입력해야 실행되므로 넣지 말것
for (i=1; i<=n; i++)
{
sum += (i*i);
}
printf("1부터 %d까지의 제곱의 합은 %d입니다.\n", n, sum);
return 0;
}
[도전 11일차] 아래의 출력 화면과 같이 밑수와 지수를 입력받아 거듭제곱을 구하는 프로그램을 작성하시오.
코드)
#include <stdio.h> int main(){ int a, b, i, inv=1; //inv는 곱셈에 사용하므로 '1'로 초기화 printf("==거듭제곱 출력 프로그램==\n\n"); printf("밑수를 입력하세요."), scanf("%d", &a); printf("지수를 입력하세요."), scanf("%d", &b); for(i=0;i<b;i++){ //입력받은 지수만큼 반복 inv=inv*a; //a의 거듭제곱 } printf("\n%d의 %d제곱은 %d입니다.", a, b, inv); return 0; }
공유하기
게시글 관리
구독하기미라클 코딩- 카카오스토리
- 트위터
- 페이스북