C언어 제곱 반복문 - ceon-eo jegob banbogmun

그런데 왜 만들어서 쓰냐고? 그건 pow 함수 반환형이 float, double, long double이고, 인자도 각각 float, double, long double이어야 하기 때문임. 물론 형변환해서 int 정수형으로 쓸 수 있을 텐데, 문제 풀 때 형변환하면서 풀기는 찝찝해서 만들어 쓰는 것임. 나중에 좀 적응하면 pow를 쓸 지도.

제일 간단한 방법은 아래 방법인 듯.

#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일차] 아래의 출력 화면과 같이 밑수와 지수를 입력받아 거듭제곱을 구하는 프로그램을 작성하시오.

 

[1일 1코딩] 거듭제곱 구하기 : C언어 도전 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; }

 

[1일 1코딩] 거듭제곱 구하기 : C언어 도전 11일차

 

 

 

 

 

 

 

 

 

 

[1일 1코딩] 거듭제곱 구하기 : C언어 도전 11일차

공유하기

게시글 관리

구독하기미라클 코딩

  • 카카오스토리
  • 트위터
  • 페이스북

'1일1코딩 > C언어 30일 챌린지' 카테고리의 다른 글

[1일 1코딩] 입력받은 횟수와 누적합 구하기 : C언어 도전 13일차  (0)2020.05.29[1일 1코딩] 사칙연산 계산기 만들기 : C언어 도전 12일차  (0)2020.05.28[1일 1코딩] 369게임 3 : C언어 도전 10일차  (0)2020.05.26[1일 1코딩] 369게임 2 : C언어 도전 9일차  (0)2020.05.25[1일 1코딩] 369게임 2 : C언어 도전 8일차  (0)2020.05.24

Toplist

최신 우편물

태그