2017-10-12 4 views
-3

그래서 나는 붙어 또는 나는 다음에 내 자신을 혼란 : 나는 양의 정수의 제곱근의 상단과 하단 숫자를 알아 내기 위해 루프를 사용할 필요가상단 및 SQRT 하단의 숫자는

예 : 10 최고 4 바닥입니다 입력 민 3

입니다 : 민을 입력 8 최고입니다 : 16 최고 4 아래 3

및 를 입력 민입니다 3 하단 2

(편집 된 (int top = 1; top> = num;에 대해 이 있습니다. top ++) 맨위로 = num가 있습니까? 나는 10^(1/2)가 3.16이라는 것을 안다. 상단과 하단은 어떻게 찾을 수 있습니까? 나는 sqrt (10) top과 bottom이 4와 3 인 방법을 모른다. 분수 나 단순화 된 사각형을 사용 하는가? 나는이 문제에 대해 혼란스러워한다. 여기에 도움을 기준으로

당신은 제곱근을 정수 이상 단지 루프를 통과 할 수있을 때까지 대답

for(int top = 1; top <=num ; top++) 
{ 
    if(top * top >= num) 
    { 
     cout << "Top is " << top ; 
     cout << "\nBottom is " << (top-1) << endl; 
     top =num +1; 
    } 
} 
+3

[편집], 코드를하지 않습니다 보여주십시오 그냥 그것의 일부를 설명하십시오. –

+0

3은'sqrt (10)'보다 작은 가장 큰 정수이고 4는'sqrt (10)'보다 큰 가장 작은 정수입니다. 따라서 하단과 상단. – stark

+0

혼란 스러우면 자신이 원하는 것을 명확히하기 위해 선생님이나 교수에게 도움을 요청해야합니다. Java 또는 C++의 솔루션이 다를 수 있으므로 솔루션을 원하는 언어를 결정해야합니다. – AntonH

답변

1

입니다 :

int bottom = 0; 
int top = 0; 

for (int i = 1; i <= num; ++i) { 
    if (i * i > num) { 
     top = i; 
     break; 
    } 
    bottom = i; 
} 
+0

나는'i * i> num'을'i * i> = num'으로 바꾸는 것이 좋습니다. 그렇지 않으면 정확한 제곱 인 숫자에 대해 OP에 의해 지정된대로 행동하지 않습니다 ('Enter Num : 16 Top is 4 Bottom is is 3 '). – AntonH