Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 명제 동치
- cnn
- Digital Logic Circuits
- 이진법 십진법 변환
- relationaldatabaseschema
- truth table
- dnf
- 명제
- 십진법
- GPT-1
- 모두의네트워크정리
- Gate
- Circuit
- ermodel
- Sentiment Analysis
- statement equivalence
- Tautology
- 항진명제
- half adder
- 모두의네트워크
- Binary notation
- 모순명제
- 써킷
- Contradiction
- full adder
- CNF
- 진리표
- 모두의네트워크요약
- Logical statement
- Decimal notation
Archives
- Today
- Total
NLP Learner in Switzerland
[C] Perfect Square Number ::: 제곱수 판별하기 본문
728x90
반응형
까다로운 부분 알아가기
[1] true 또는 false를 반환하는 bool function 사용하기
▶ C library의 stdbool.h 헤더를 사용한다.
[2] 제곱수square number라는 조건은 어떻게 둘까?
▶ 특정 x의 제곱이 입력받은 수보다 작거나 같은 경우, 계속 x를 1씩 늘려가며 x를 찾는다.
[3] 함수에서 return이 한번 발생하면 그 다음 return은 수행되지 않는다.
[4] integer를 input으로 받을 수 있도록 한다.
▶ integer의 경우 data type은 int이며, format specifier는 %d를 사용한다.
▶ integer를 입력받을 경우에는, 변수명 앞에 &(ampersand)를 붙여 메모리의 주소(address of memory)를 가리킬 수 있도록 해야한다. 내가 이해한 내용이 맞다면, scanf는 '입력을 받는다' = '변화가능해야 함', 따라서 특정 수로 고정시키는 것이 아니라, 해당 변수가 들어가게 되는 메모리 주소자체를 가리킬 수 있도록 한다.
[5] "TRUE", "FALSE"라는 글자를 프린트해주어야 한다.
▶ bool function의 return은 1 또는 0이다. C언어는 파이썬과 달리 true와 false라는 글자는 이해를 못한다.
▶ 따라서 if statement로 true인 경우 "TRUE"를 출력할 수 있게 한다.
#include <stdio.h>
#include <stdbool.h> ------------------------ [1]
bool isPerfectSquare(int num){
int i=1;
while(i*i<=num){ ------------------------ [2]
if(i*i==num){
return true; -------------------- [3]
}
i++;
}
return false;
}
int main(){
int num;
printf("Enter an integer: ");
scanf("%d",&num); ----------------------- [4]
if(isPerfectSquare(num)){ --------------- [5]
printf("Perfect Square Number: TRUE");
}
else{
printf("Perfect Square Number: FALSE");
}
return 0;
}
출력결과
'Algorithm in C > Exercise' 카테고리의 다른 글
[C] Multiple Recursion ::: 재귀호출이 2번 이상 일어나는 경우 (0) | 2021.04.01 |
---|---|
[C] Basic Recursion ::: 재귀함수로 거듭제곱 나타내기 (0) | 2021.03.31 |
[C] Selection Sort in Ascending & Descending Order ::: 선택정렬 (0) | 2021.03.30 |
[C] Matrix Multiplication ::: 행렬의 곱 (0) | 2021.03.29 |
[C] Reverse String ::: 문자열을 입력받아 거꾸로 출력하기 (0) | 2021.03.29 |
Comments