2017-10-12 90 views
-3

所以我坚持还是我混淆了自己与以下几点: 我需要使用一个for循环找出顶部和底部的数字为正整数的平方根顶部和开方的底部编号

即: 输入编号:10 顶部是4 底部是3

输入编号:16 顶部是4 底部是3

和 输入编号:8 顶部是3 底部2

(编辑 我有 对(INT顶部= 1;顶> = NUM​​; top ++) 确实top> = num go there?我知道10 ^(1/2)是3.16。 如何找到顶部和底部?我不知道sqrt(10)顶部和底部是如何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 3')。 – AntonH