JS Likou klassische 100 Fragen – Integer-Inversion

Geben Sie bei einer gegebenen 32-Bit-Ganzzahl x mit Vorzeichen das Ergebnis der Invertierung des numerischen Teils von x zurück.

Gibt 0 zurück, wenn die invertierte Ganzzahl den Bereich [−231, 231 − 1] einer 32-Bit-Ganzzahl mit Vorzeichen überschreitet.
Gehen Sie davon aus, dass die Umgebung das Speichern von 64-Bit-Ganzzahlen (mit oder ohne Vorzeichen) nicht zulässt.

Beispiel 1:

Eingabe: x = 123
Ausgabe: 321

Beispiel 2:

Eingabe: x = -123
Ausgabe: -321

Beispiel 3:

Eingabe: x = 120
Ausgabe: 21

Beispiel 4:

Eingabe: x = 0
Ausgabe: 0

Hinweis:

    -231 <= x <= 231 - 1

Ideen zur Problemlösung: Verarbeiten Sie entsprechend dem Zahlentyp, rufen Sie jedes Mal die letzte Ziffer der ursprünglichen Zahl ab und ändern Sie sie schrittweise in eine hohe Ziffer. Die letzte Ziffer der ursprünglichen Zahl wird in jedem Zyklus entfernt, in js ist jedoch eine manuelle Rundung erforderlich. Hier wird |0 nach der Zahl hinzugefügt, d auch gegen Null gerundet. alle.

/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
    let result = 0;

    while(x !== 0) {
        result = result * 10 + x % 10;  // 累加
        x = x / 10 |0;  // js取整操作,在后面加|0
        console.log(x)
    }
    return result < -Math.pow(2,31)-1 || result > Math.pow(2,31) ? 0 : result;
};

Wenn Sie die Rundungsoperation nicht durchführen, nehmen Sie immer Dezimalzahlen und nehmen weiterhin Dezimalzahlen.

 

 

Supongo que te gusta

Origin blog.csdn.net/qq_36384657/article/details/128227759
Recomendado
Clasificación