Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Programm zum Überprüfen, ob alle Umdrehungen einer bestimmten Zahl größer oder gleich einer bestimmten Zahl sind

JavaScript-Programm zum Überprüfen, ob alle Umdrehungen einer bestimmten Zahl größer oder gleich einer bestimmten Zahl sind

WBOY
WBOYnach vorne
2023-09-08 17:49:081549Durchsuche

JavaScript 程序检查给定数字的所有旋转是否大于或等于给定数字

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.

Einführung in das Problem

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.

Rotation einer bestimmten Zahl

Beispiel

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.

Beispiel

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.

Methode

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.

Beispiel

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.

Zeitliche und räumliche Komplexität

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).

Allgemeine Idee

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.

Fazit

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen