2017-01-24 2 views
-6

Ich möchte ein Java-Programm schreiben, um die größte Quadratnummer zu finden, die kleiner oder gleich einer gegebenen Zahl ist.Das größte Quadrat weniger als eine gegebene Anzahl in Java finden

Zum Beispiel, wenn ich 10 als die eingegebene Nummer einzufügen, ist die Antwort 9 weil 9 die größte Platz ist bis zu 10

I Schleifen verstehen, aber ich kann das nicht herausfinden, Logik hinter diesem.

+4

Bitte lesen [die Tour] (http://Stackoverflow.com/tour) und [* Wie stelle ich eine gute Frage? *] (Http://stackoverflow.com/help/how-to -Fragen). – Biffen

Antwort

0

Hier ist, wie dies mit Schleifen zu tun

int n=10; //This is your Number 
int i = 0; 
for(i=n;i>=1;i--) 
    if((int)Math.sqrt(i)*(int)Math.sqrt(i)==i) 
     break; 
System.out.println(i); 

Unten ist, wie es funktioniert: -

Die Schleife läuft von der n, die Ihre Nummer ist, zu 1. Es prüft dann, ob die Quadratwurzel von i, die durch n bis 1 läuft, eine perfect square ist. Wenn dies der Fall ist, gibt es breaks die loop, und druckt den Wert i auf dem Bildschirm.

+0

Vielen Dank das war sehr hilfreich – kago

+0

@kago Wenn es geholfen hat, wählen Sie es bitte als Antwort aus. –

+0

ich habe gerade danke – kago

2

Wie wäre es so etwas wie die folgenden, um Sie gehen ...

double x = 20; 
double root = Math.sqrt(x); 
int t = (int)root; 
System.out.println("Root is:" + root + " and answer is :" + t*t); 
+0

Dies ist der Weg zu gehen IMHO. –

0
public static void main(String argv[]){ 
     System.out.println(largestSquareLessOrEqualTo(145)); 
    } 

    public static int largestSquareLessOrEqualTo(int limit){ 
    int i = 0; 
     for (; i <(int)Math.sqrt(limit); i++){ 
     } 
     return(i*i); 
    } 
Verwandte Themen