Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Zahlenrätsel (fünfstellige Zahl) (Schleifen)

Gesucht wird die fünfstellige Zahl ABCDE, die mit 4 multipliziert sich selbst rückwärts ergibt:

4 x ABCDE = EDCBA

 

Schreiben einen Algorithmus, der die einzig mögliche Lösung ausgibt.

 

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

6 Lösung(en)

Number.prototype.reverse = function() {
  return parseInt(this.toString().split('').reverse().join(''));
}

Number.prototype.hasDuplicates = function() {
  let arr = this.toString().padStart(5, '0').split('');
  return new Set(arr).size != arr.length;
}

for (let i = 01234; i * 4 <= 98765; i++) {
  if (!i.hasDuplicates()) {
    let i4 = i * 4;
    if (i4.toString().length == 5 && i4 == i.reverse())
      console.log(
        `4 × ${i.toString().padStart(5, '0')} = ${i4}`
      );
  }
}
                

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

import itertools
for x in itertools.product(range(10), repeat=5):
    num = sum((n * 10**(len(x)-i) for i, n in enumerate(x, start=1)))
    rev = sum((n * 10**i for i, n in enumerate(x, start=0)))
    if 4*num == rev and (len(str(num)), len(str(rev))) == (5, 5):
        print(f"4 x {num} = {rev}")
                

Lösung von: Name nicht veröffentlicht

print([i for i in range(10000,100000) if str(4*i)==str(i)[::-1]][0])
                

Lösung von: rob ert (tub)

// C++ 17
#include <iostream>

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

int main() {
    for (auto i{ 12'345 }; i < 98'765; ++i) {
        const auto r{ reverse_number(i) };
        if (4 * i == r) {
            std::cout << "4 x " << i << " = " << r << "\n";
            break;
        }
	}
}
                

Lösung von: Jens Kelm (@JKooP)

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

for (var i = 12_345; i < 98_765; i++) {
    _ = int.TryParse(string.Join("", i.ToString().Reverse()), out var r);
    if (4 * i == r) Console.WriteLine($"4 x {i} = {r}");
}
                

Lösung von: Jens Kelm (@JKooP)

' VBA

Sub Main()
    Dim i As Long, r As Long
    For i = 12345 To 98765
        r = CLng(StrReverse(CStr(i)))
        If 4 * i = r Then
            Debug.Print "4 x " & i & " = " & r
            Exit For
        End If
    Next
End Sub
                

Lösung von: Jens Kelm (@JKooP)

Verifikation/Checksumme:

4 x 21978 = 87912

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit:
Schwierigkeit: Leicht
Webcode: w0bf-4ppj
Autor: ()

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen