2017-10-12 96 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