Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Rückwärtsausgabe einer 32-bit Integer-Zahl (Anweisungen und Abfolgen)

Gegeben ist eine 32-bit Integer-Zahl, die sowohl positiv als auch als negative sein kann. Diese Zahl soll rückwärts ausgegeben werden, wobei

  • führende Nullen entfernt werden sollen,
  • bei negativen Zahlen das Vorzeichen vorne wieder angestellt wird und
  • wenn sich die Zahl außerhalb des Bereichs einer 32-bit Integer-Zahl befindet, Null (0) zurückgegeben werden soll.

Beispiele:

in = 123

out = 321

 

in = -123

out = -321

 

in = 120

out = 21

 

in = -120

out = -21

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

6 Lösung(en)

Number.prototype.reverse = function() {
  if (Math.abs(this) > 2147483647) return 0;
  let arr = this.toString().split('').reverse();
  if (arr[arr.length-1] == '-') arr.unshift(arr.pop());
  return parseInt(arr.join(''));
}

let numbers = [123, -123, 120, -120];
for (i of numbers) console.log(i.reverse());

                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

def rev_num(n):
    rev = int("".join(reversed(str(n).removeprefix("-"))))
    if n < 0:
        rev = -rev
    if rev < -2147483648 or rev > 2147483647:
        return 0
    return rev

for num in [123, -123, 120, -120]:
    print(rev_num(num))
                

Lösung von: Name nicht veröffentlicht

x=input('Bitte eine Zahl eingeben: ')
print(int(str(x)[::-1]) if str(x)[0]!='-' else '-'+str(int(str(x)[1:][::-1]))) if -2147483648<=int(x)<=2147483647 else 0
                

Lösung von: rob ert (tub)

// NET 6.x | C# 10.x | VS-2022

var lst = new List<int> { 123, -123, 120, -120, -1234567899 };
foreach (var i in lst)
    Console.WriteLine($"{i} -> {Reverse(i)}");

int Reverse(int x) {
    var t = string.Join("", x.ToString().Reverse());
    if (x < 0) t = t[..^1];
    _ = int.TryParse(t, out var r);
    return r * (x < 0 ? -1 : 1);
}
                

Lösung von: Jens Kelm (@JKooP)

// C++ 17
#include <iostream>
#include <vector>

int reverse_number(int n) {
    if (n % 10 == n) return n;
    auto z{ 0 };
    while (n) {
        const auto r{ n % 10 };
        n /= 10;
        if (abs(z * 10 + r) > INT_MAX - abs(z)) return 0;
        z = z * 10 + r;
    }
    return z;
}

int main() {
    const std::vector<int> v{123, -123, 120, -120, 1234567899, -1234567899};
    for (const auto& n : v) {
        const auto r{ reverse_number(n) };
        std::cout << n << " -> "<< r << "\n";
    }
}
                

Lösung von: Jens Kelm (@JKooP)

' VBA
' long entspricht in VBA int32

Const MAX_LNG As Long = 2147483648#
Const MIN_LNG As Long = -2147483648#

Function ReverseNum(ByVal n As Long) As Double
    Dim r As Double
    r = CDbl(StrReverse(CStr(n)))
    ReverseNum = IIf(r < MIN_LNG Or r > MAX_LNG, 0, r)
End Function

Sub Main()
    arr = Array(123, -123, 120, -120, 1234567899, -1234567899)
    For Each n In arr
        Debug.Print n, ReverseNum(n)
    Next
End Sub
                

Lösung von: Jens Kelm (@JKooP)

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit:
Schwierigkeit: Mittel
Webcode: ptg2-huvj
Autor: ()

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen