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
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
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung: