2017-10-12 3 views
-3

Je suis coincé ou je confondais mon moi avec ce qui suit: je dois utiliser une boucle pour trouver les numéros haut et en bas de la racine carrée d'un nombre entier positifHaut et le nombre inférieur de sqrt

à savoir: Entrée Num: 10 Top 4 est inférieur est 3

Entrée Num: 16 Top est 4 Bottom est 3

et Entrée Num: 8 Top est 3 Bas 2

(édité J'ai pour (int top = 1; top> = num; top ++) est-ce que top> = num y aller? Je sais que 10^(1/2) est 3,16. Aussi comment sont trouvés le haut et le bas? Je ne sais pas comment sqrt (10) haut et bas est 4 et 3 ... est-ce avec des fractions ou avec des carrés simplifiés? Je suis confus sur ce problème.

basé sur l'aide ici est la réponse

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

S'il vous plaît [modifier] pour afficher votre code, ne décrivez juste une partie de celui-ci. –

+0

3 est le plus grand entier inférieur à 'sqrt (10)' et 4 est le plus petit entier supérieur à 'sqrt (10)'; donc bas et haut. – stark

+0

Si vous êtes confus, vous devriez vraiment demander de l'aide à votre professeur ou professeur, ne serait-ce que pour clarifier ce qu'ils veulent de vous. Vous devez également choisir la langue dans laquelle vous voulez installer la solution, car les solutions Java ou C++ peuvent être différentes. – AntonH

Répondre

1

Vous pouvez simplement boucle sur des entiers jusqu'à ce que vous passer la racine carrée:

int bottom = 0; 
int top = 0; 

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

Je suggère de remplacer 'i * i> num' avec' i * i> = num', car il ne se comporte pas autrement comme spécifié par OP pour les nombres qui sont des carrés exactes ('Entrez Num: 16 Top est 4 Bas est 3'). – AntonH