두 개의 실수를 입력받아 각각의 제곱근을 구하고 두 제곱근 사이에 존재하는 정수의 개수를 출력하는 프로그램을 작성하시오.
단, 입력받는 두 실수는 양수이며 두 제곱근 사이라는 말은 두 제곱근을 포함한다.
![]() 12.0 34.789 | ![]() 2 |
두 수의 제곱근을 구하여 정수로 형변환을 한 후 생각해보자. 두 수 사이의 수들은 모두 포함이 되면 작은 수의 경우 변환하기 전 원래의 제곱근과 같다면 개수에 포함을 시켜야 한다. 큰 수는 원래의 수보다 작거나 같으므로 무조건 포함이 된다.
[코드]
#include <stdio.h>
#include <math.h>
int func(double a, double b) {
double temp;
int num = 0;
if (a > b) {
temp = a;
a = b;
b = temp;
}
if ((int)sqrt(a) == sqrt(a))
a = sqrt(a) - 1;
else
a = sqrt(a);
b = (int)(sqrt(b));
for (; a < b; a++)
num++;
return num;
}
int main() {
double a, b;
int num;
scanf("%lf %lf", &a, &b);
num = func(a, b);
printf("%d", num);
return 0;
}
'코딩 > Language Coder' 카테고리의 다른 글
178 : 함수2 - 형성평가4 (0) | 2019.01.03 |
---|---|
177 : 함수2 - 형성평가3 (0) | 2018.12.30 |
175 : 함수2 - 형성평가1 (0) | 2018.12.28 |
586 : 함수2 - 자가진단8 (0) | 2018.12.28 |
585 : 함수2 - 자가진단7 (0) | 2018.12.27 |