Heim >Web-Frontend >js-Tutorial >JavaScript-Programm zum Überprüfen, ob alle Umdrehungen einer bestimmten Zahl größer oder gleich einer bestimmten Zahl sind
In diesem Artikel gehen wir ein JavaScript-Programm durch, um zu prüfen, ob alle Drehungen einer bestimmten Zahl größer oder gleich einer bestimmten Zahl sind. Wir schreiben einen Algorithmus und erklären jeden Schritt, den wir ausführen. Die zeitliche Komplexität der besprochenen Codes wird optimistisch sein, während sich die räumliche Komplexität von einem Code zum anderen verbessern wird.
In dieser Frage erhalten wir eine Zahl und müssen prüfen, ob jede Drehung größer als die aktuelle Zahl ist, oder wir müssen einfach die Drehung der aktuellen Zahl finden, die kleiner als die aktuelle Zahl ist, und ob eine kleinere Zahl darin enthalten ist Wenn die Drehung erfolgt, geben wir „false“ zurück, andernfalls geben wir „true“ zurück.
Die Drehung einer bestimmten Zahl kann auf zwei Arten erfolgen: im Uhrzeigersinn oder gegen den Uhrzeigersinn. Im Uhrzeigersinn nehmen wir die letzte Ziffer der Zahl und fügen sie vor der ersten Ziffer hinzu. Zum Beispiel -
var number = 1234 var last_digit = number%10; number /= 10; number = Math.floor(number) var answer = last_digit.toString() + number.toString(); console.log("The first rotation of the given number is: " + answer)
Im obigen Code wird uns eine Zahl gegeben und wir müssen die erste Drehung der gegebenen Zahl finden. Zuerst speichern wir die letzte Ziffer der aktuellen Zahl in einer anderen Variablen und entfernen dann die letzte Ziffer der gegebenen Zahl, indem wir sie durch 10 dividieren und die Grenze bilden.
Schließlich hängen wir die aktuelle Zahl nach der letzten Zahl an, was uns den ersten Versuch gibt.
Um die nächste Drehung oder die zweite Drehung der aktuellen Zahl zu erhalten, können wir die nächste Drehung der ersten Drehung erhalten, oder wir können dies sogar mit einer anderen Methode tun, die bei jeder Drehung üblich ist. Sehen wir uns das anhand des Codes an -
var number = 1234 var i = 2 var n_string = number.toString() var last_i_elements = n_string.substring(n_string.length-i); var answer = last_i_elements+ n_string.substring(0,n_string.length-i); console.log("The ith rotation of the given number is: " + answer)
Im obigen Code wird uns eine Zahl gegeben und wir müssen die i-te Drehung der gegebenen Zahl finden. Zuerst speichern wir die letzte „i“-Ziffer der aktuellen Zahl in einer anderen Variablen.
Schließlich hängen wir die aktuelle Zahl an die Zeichenfolge an, die die letzte „i“-Zahl enthält, was uns unseren ersten Versuch ermöglicht.
Die oben besprochene Methode besteht darin, die Zahl im Uhrzeigersinn zu drehen. Für die Drehung gegen den Uhrzeigersinn müssen wir die Zahl von vorne auswählen und am Ende anhängen.
Wenn es keine Angabe gibt, welche Rotation wir wählen müssen, wählen wir im Uhrzeigersinn. Im Beispiel sehen wir also eine Drehung im Uhrzeigersinn.
Diese Methode ist die Brute-Force-Methode. Bei dieser Methode finden wir jede Drehung einer bestimmten Zahl und überprüfen jede höhere Zahl. Wenn wir eine Zahl finden, die kleiner als die aktuelle Zahl ist, geben wir „false“ zurück, andernfalls geben wir „true“ zurück.
Schauen wir uns zunächst den Code an und gehen dann zur Erklärung des Codes über -
function check(number,i){ var n_string = number.toString() var last_i_elements = n_string.substring(n_string.length-i); var answer = last_i_elements+ n_string.substring(0,n_string.length-i); if(answer < n_string){ return false; } return true; } var number = 12345 // checking for every rotation var ans = true; for(var i=1;i<number.toString().length;i++){ ans = check(number,i); if(ans == false){ break; } } if(ans == true){ console.log("There is no rotation present which is less then given number") } else{ console.log("There is a rotation of given number present which is less then given number") }
Im obigen Programm iterieren wir zunächst in einer for-Schleife von 1 bis zur Größe der Zahl minus 1, um jede Drehung von 1 bis zur Größe minus 1 zu erhalten. In jeder Iteration rufen wir eine vordefinierte Funktion auf.
In der Funktion erhalten wir die i-te Drehung, die als Argument an die Funktion übergeben und mit der angegebenen Zahl verglichen wird. Wenn die i-te Rotation kleiner als die angegebene Zahl ist, geben wir als Rückgabewert „false“ zurück, andernfalls geben wir „true“ zurück.
Wir pflegen eine Variable namens Antwort, die die von der Funktion zurückgegebenen wahren und falschen Werte speichert und die Antwort nach Bedarf ausgibt.
Im obigen Code haben wir die Funktion check() insgesamt n-mal aufgerufen, wobei n die Größe der angegebenen Zahl ist. Innerhalb der Funktion erstellen wir einen Teilstring, der eine Kopie der angegebenen Zahl ist, und iterieren n-mal, was bedeutet, dass wir ihn n*n-mal verwenden. Daher beträgt die zeitliche Komplexität der gegebenen Funktion O(N*N).
In der Prüffunktion bedeutet dies jedes Mal, dass wir eine Kopie der angegebenen Zahl erstellen, dass wir zusätzliche N Leerzeichen verwenden. Daher ist die Raumkomplexität der gegebenen Funktion O(N).
Wenn im obigen Code alle Zahlen unterschiedlich sind, können wir die Antwort nur in O(N)-Zeitkomplexität und O(1)-Raumkomplexität erhalten, denn wenn eine Zahl kleiner als die erste Zahl ist, bedeutet dies, dass es eine gibt Es besteht die Möglichkeit, dass die Zahl bei einer exakten Drehung geringer ist als die ursprüngliche Zahl.
In diesem Tutorial verwenden wir ein JavaScript-Programm, um zu prüfen, ob alle Drehungen einer bestimmten Zahl größer oder gleich einer bestimmten Zahl sind. Die zeitliche Komplexität des Programms beträgt O(N*N) und die räumliche Komplexität beträgt O(N), wobei N die Größe der gegebenen Zahl ist. Wir haben ein Programm implementiert, mit dem wir jede Drehung einer bestimmten Zahl finden und mit der ursprünglichen Zahl vergleichen können.
Das obige ist der detaillierte Inhalt vonJavaScript-Programm zum Überprüfen, ob alle Umdrehungen einer bestimmten Zahl größer oder gleich einer bestimmten Zahl sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!