Inhaltsverzeichnis
Problemstellung
Beispiel
Lösung
Beispiel: C++-Programm
输出
时间和空间复杂度分析
时间复杂度:O(n!)
空间复杂度:O(n!)
结论
Heim Backend-Entwicklung C++ Anzahl der Palindrom-Selfies

Anzahl der Palindrom-Selfies

Sep 09, 2023 pm 08:37 PM
自拍 回文

Anzahl der Palindrom-Selfies

Eine Zahl gilt als „Selfie-Zahl“, wenn sie nur mit ihren eigenen Ziffern und einigen mathematischen Operationen dargestellt werden kann.

Zum Beispiel ist 936 eine Selfie-Nummer.

$$mathrm{936:=:(sqrt{9})!^{3}:+:6!:=:216:+:720:=:Kapitel 936

Hier können Sie sehen, dass eine Reihe von Operationen an der ursprünglichen Zahl ausgeführt werden und das Ergebnis der ursprünglichen Zahl entspricht.

Eine Palindrom-Selfie-Nummer ist eine besondere Selfie-Nummer. Sie erfüllen die Selfie-Multiplikationsregel.

  • Betrachten Sie eine Zahl x.

  • Angenommen, die numerisch umgekehrte Zahl von x ist $mathrm{x^prime}$.

  • Sei y eine Zahl, die aus den Ziffern von x in unterschiedlicher Reihenfolge besteht.

  • Angenommen, die invertierte Zahl von y ist $mathrm{y^prime}$.

Die Anzahl der palindromischen Selfies erfüllt die folgende Gleichung –

$$mathrm{x:×:x^prime:=:y:×:y^prime}$$

Problemstellung

Ermitteln Sie für eine gegebene Zahl x ihre Palindrom-Selfie-Zahl gemäß der Selfie-Multiplikationsregel.

Beispiel

Input: 1224
Output: 2142
Nach dem Login kopieren

Anleitung -

Gegebenes x = 1224

Also erhält man $mathrm{x^prime}$ = 4221 durch Umkehren der Anzahl von x

Sei y = 2142. y wird aus den Zahlen von x in unterschiedlicher Reihenfolge gebildet

Also erhält man $mathrm{y^prime}$ = 2412 durch Umkehren der Zahl von y

$mathrm{x:×:x^prime}$ = 1224 × 4221 = 5166504 und $mathrm{y:×:y^prime}$ = 2142 × 2412 = 5166504

Sincex× x' = y × y', y ist die Anzahl der Palindrom-Selfies von x.

Input 4669:
Output: 6496
Nach dem Login kopieren

Anleitung -

Gegebenes x = 4669

Also erhält man $mathrm{x^prime}$ = 9664 durch Umkehren der Anzahl von x

Sei y = 6496. y wird aus den Zahlen von x in unterschiedlicher Reihenfolge gebildet

Also erhält man $mathrm{y^prime}$ = 6946 durch Umkehren der Zahl von y

$mathrm{x:×:x^prime}$ = 4669 × 9664 = 45121216 und $mathrm{y:×:y^prime}$ = 6496× 6946= 45121216

Da x× x' = y × y' ist, ist y die Palindrom-Selfie-Zahl von x.

Input: 456
Output: No palindromic selfie number exists
Nach dem Login kopieren

Anleitung -

Gegebenes x = 456

Also erhält man $mathrm{x^prime}$ = 654 durch Umkehren der Anzahl von x

Sei y = 546. y wird aus den Zahlen von x in unterschiedlicher Reihenfolge gebildet

Also erhält man $mathrm{y^prime}$ = 645 durch Umkehren der Zahl von y

$mathrm{x:×:x^prime}$ = 456 × 654 = 298224 und $mathrm{y:×:y^prime}$ = 546× 645= 352170

Da $mathrm{x:×:x^prime}$ ≠ $mathrm{y:×:y^prime}$ ist, ist y nicht die palindromische Selfie-Zahl von x.

Keine andere Permutation von 456 erfüllt auch die Selfie-Multiplikationsregel.

Lösung

Die Lösung zum Ermitteln der Palindrom-Selfie-Nummer einer bestimmten Nummer ist recht intuitiv und leicht zu verstehen.

Die Methode umfasst die folgenden Schritte –

  • Definieren Sie eine „Umkehr“-Funktion

    • Akzeptiert eine Ganzzahl als Eingabe

    • Konvertieren Sie es in einen String

    • Umgekehrte Zeichenfolge

    • Konvertieren Sie es zurück in eine Ganzzahl.

  • Definieren Sie eine Funktion „Swap“

    • Nehmen Sie die ganzen Zahlen i und j als Eingabe

    • Integer in String umwandeln

    • Vertauschen Sie die i-ten und j-ten Zeichen in der Zeichenfolge

    • Konvertieren Sie die Zeichenfolge zurück in eine Ganzzahl.

  • Definieren Sie eine Funktion „Permutation“

    • Nimmt als Eingabe eine Ganzzahl, l, r und eine Reihe von „Permutationen“.

    • Es generiert rekursiv alle möglichen Permutationen ganzer Zahlen

    • Es speichert sie im Satz „Permutationen“.

  • Definieren Sie eine Funktion „palindromic_selfie“

    • Nimmt als Eingabe eine ganze Zahl „num“ und eine Reihe von „Permutationen“.

    • Es verwendet die Funktion „permute“, um alle möglichen Permutationen der ganzen Zahl „num“ zu generieren

    • Es prüft dann, ob eine dieser Permutationen die palindromische Selfie-Eigenschaft erfüllt, indem es das Produkt aus der Zahl und ihrer umgekehrten Reihenfolge mit dem Produkt der Permutation und ihrer umgekehrten Reihenfolge vergleicht.

    • Wenn eine solche Permutation gefunden wird, geben Sie diese Zahl zurück. Andernfalls wird -1 zurückgegeben.

  • Legen Sie in der Hauptfunktion eine Zahl „n“ und eine leere Menge fest, um die Permutation zu speichern.

  • Rufen Sie die Funktion „palindromic_selfie“ mit „n“ und der leeren Menge auf und speichern Sie das Rückgabeergebnis.

  • Wenn das Rückgabeergebnis -1 ist, geben Sie „Es gibt keine Palindrom-Selfie-Nummer“ aus. Andernfalls drucken Sie das zurückgegebene Ergebnis aus.

Beispiel: C++-Programm

Das folgende C++-Programm findet die Palindrom-Selfie-Nummer einer bestimmten Ganzzahl (falls vorhanden) und gibt sie zurück. Dazu verwendet es die Funktion permute(), um alle möglichen Permutationen einer bestimmten Zahl zu finden, und verwendet dann die Funktion reverse(), um zu bestimmen, ob die angegebene Zahl und etwaige Permutationen dieser Zahl den Selfie-Multiplikationsregeln im palindrome_selfie() genügen. Funktion. Wenn keine solche Nummer vorhanden ist, wird „No Palindrome Selfie Number Exists“ gedruckt.

#include <bits/stdc++.h>
using namespace std;

// Function to reverse the digits of a number
int reverse(int num){
   
   // converting number to string
   string str = to_string(num);
   reverse(str.begin(), str.end());
   
   // converting string to integer
   num = stoi(str);
   return num;
}

// Function that Swaps the digits i and j in the num
int Swap(int num, int i, int j){
   char temp;
   
   // converting number to string
   string s = to_string(num);
   
   // Swap the ith and jth character
   temp = s[i];
   s[i] = s[j];
   s[j] = temp;
   
   // Convert the string back to int and return
   return stoi(s);
}

// Function to get all possible permutations of the digits in num
void permute(int num, int l, int r, set<int> &permutations){
   
   // Adds the new permutation obtained in the set
   if (l == r)
      permutations.insert(num);
   else{
      for (int i = l; i <= r; i++){
         
         // Swap digits to get a different ordering
         int num_copy = Swap(num, l, i);
         
         // Recurse to next pair of digits
         permute(num_copy, l + 1, r, permutations);
      }
   }
}

// Function to check for palindrome selfie number
int palindromic_selfie(int num, set<int>& permutations) {
   
   // Length of the number required for calculating all permutations of the digits
   int l = to_string(num).length() - 1;
   permute(num, 0, l, permutations); // Calculate all permutations
   
   //Remove the number and its reverse from the obtained set as this is the LHS of multiplicative equation
   auto n1 = permutations.find(reverse(num));
   auto n2 = permutations.find(num);
   if (n1 != permutations.end())
      permutations.erase(n1);
   if (n2 != permutations.end())
      permutations.erase(n2);
   
   // Go through all other permutations of the number
   for (set<int>::iterator it = permutations.begin(); it != permutations.end(); it++) {
      int num2 = *it;
      
      // Check if selfie multiplicative rule holds i.e. x * reverse(x) = y * reverse(y)
      if (num * reverse(num) == num2 * reverse(num2)) {
         return num2;
      }
   }
   
   // If no such number found
   return -1;
}
int main(){
   int n = 1234;
   cout << "n: " << n << endl;
   set<int> permutations;
   int ans = palindromic_selfie(n, permutations);
   if (ans == -1) {
      cout << "No Palindromic Selfie Number Exists" << endl;
   }
   else{
      cout << ans << endl;
   }
   return 0;
}
Nach dem Login kopieren

输出

n: 1234
No Palindromic Selfie Number Exists
Nach dem Login kopieren

时间和空间复杂度分析

时间复杂度:O(n!)

此代码的时间复杂度为 O(n!),其中 n 是输入数字的位数。这是因为有 n! n 位数字的排列,并且 permute() 方法生成数字的所有潜在排列。

空间复杂度:O(n!)

由于集合“排列”包含所有可能的数字组合,等于 n!,因此该代码的空间复杂度为 O(n!)。 verse() 和 Swap() 函数的空间复杂度为 O(n),因为它们还生成长度为 n 的临时字符串。空间复杂度为 O(n!) 的排列集合主导了整个代码的空间复杂度。

结论

Anzahl der Palindrom-Selfies是数学中一个有趣的概念。它们满足自拍乘法方程。本文讨论了一种方法来查找一个数字是否具有回文自拍号码,如果是,则返回它。对问题的概念、解决方法、C++程序以及程序的时间和空间复杂度进行了深入分析。

Das obige ist der detaillierte Inhalt vonAnzahl der Palindrom-Selfies. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

C-Programm zum Ermitteln des größten Primfaktors einer Zahl C-Programm zum Ermitteln des größten Primfaktors einer Zahl Aug 27, 2023 am 10:09 AM

Primfaktor – In der Zahlentheorie sind die Primfaktoren einer positiven ganzen Zahl die Primzahlen, die diese ganze Zahl genau teilen. Der Prozess zum Finden dieser Zahlen wird Ganzzahlfaktorisierung oder Primfaktorisierung genannt. Beispiel: Primfaktoren von 288 sind: 288 = 2 x 2 x 2 x 2 x 2

Top 10 Global Digital Virtual Currency Trading Platform Ranking (2025 Autoritative Ranking) Top 10 Global Digital Virtual Currency Trading Platform Ranking (2025 Autoritative Ranking) Mar 06, 2025 pm 04:36 PM

Im Jahr 2025 sind globale digitale Handelsplattformen für virtuelle Währungen sehr wettbewerbsfähig. OKX steht an erster Stelle mit seiner starken technischen Stärke und globalen Betriebsstrategie, und Binance folgt eng mit hoher Liquidität und niedrigen Gebühren. Plattformen wie Gate.io, Coinbase und Kraken stehen mit ihren jeweiligen Vorteilen im Vordergrund. Die Liste umfasst Handelsplattformen wie Huobi, Kucoin, Bitfinex, Crypto.com und Gemini, die jeweils eigene Eigenschaften haben, aber Investitionen sollten vorsichtig sein. Um eine Plattform auszuwählen, müssen Sie Faktoren wie Sicherheit, Liquidität, Gebühren, Benutzererfahrung, Währungsauswahl und Vorschriften für die behördliche Regulierung berücksichtigen und rational investieren

Können WeChat-Selfie-Emoticons gelöscht werden? Können WeChat-Selfie-Emoticons gelöscht werden? Feb 27, 2024 pm 09:34 PM

Wenn wir mit Freunden auf WeChat chatten, verwenden wir nicht nur Wörter, sondern oft auch verschiedene Emoticons, um Emotionen besser auszudrücken. Unter anderem sind WeChat-Selfie-Emoticons eine Ausdrucksweise, die viele Menschen gerne während Chats verwenden. Aber manchmal fügen wir versehentlich einige unangemessene Selfie-Emoticons hinzu und müssen sie dann löschen. Wie kann man es also löschen? Dieses Tutorial gibt Ihnen eine detaillierte Einführung. Freunde, die es nicht wissen, folgen Sie diesem Artikel, um es herauszufinden. Wie lösche ich Selfie-Emoticons auf WeChat? 1. Zuerst müssen Sie WeChat öffnen und auf der Emoticon-Store-Oberfläche auf das Einstellungssymbol klicken. 2. Dann müssen Sie auf der Benutzeroberfläche „Mein Emoticon“ auf „Mein Selfie-Emoticon“ klicken. 3. Klicken Sie dann auf „Meine Selfie-Ausdrücke eingeben“ und wählen Sie die Organisationsfunktion aus. 4. Überprüfen Sie abschließend diejenigen, die gelöscht werden müssen.

Top 10 Börsen im Währungskreis in 2025 neueste Rangliste für digitale Währung Apps Top 10 Börsen im Währungskreis in 2025 neueste Rangliste für digitale Währung Apps Feb 27, 2025 pm 06:33 PM

Rangliste der zehn besten Handelsplattformen für virtuelle Währung (neueste im Jahr 2025): Binance: Globaler Führer, hohe Liquidität und Regulierung haben Aufmerksamkeit erregt. OKX: Große Benutzerbasis, unterstützt mehrere Währungen und bietet einen gehebten Handel. Gate.io: Eine Senior -Börse mit einer Vielzahl von Zahlungsmethoden für Fiat -Währung, die eine Vielzahl von Handelspaaren und Anlageprodukten bietet. Bitget: Derivateaustausch, hohe Liquidität, niedrige Gebühren. Huobi: Eine alte Börse, die eine Vielzahl von Währungen und Handelspaaren unterstützt. Coinbase: Ein bekannter amerikanischer Austausch, streng reguliert. Phemex und so weiter.

Top 10 Handelsplattformen für digitale Währung Die neueste Liste der Top 10 Top 10 -Handelsplattformen für digitale Währung Top 10 Handelsplattformen für digitale Währung Die neueste Liste der Top 10 Top 10 -Handelsplattformen für digitale Währung Mar 17, 2025 pm 05:57 PM

Top 10 Handelsplattformen für digitale Währung: 1. OKX, 2. Binance, 3. Gate.io, 4. Huobi Global, 5. Kraken, 6. Coinbase, 7. Kucoin, 8. Bitfinex, 9. Crypto.com, 10. Gemini, diese Austausch haben ihre eigenen Merkmale und Benutzer, die sich auf die Plattform, die sich auf die Plattform handeln, auf der Grundlage von Faktoren, die auf der Grundlage von Sicherheitsfaktoren, die Sicherheit, und die Sicherheit, die sie basieren.

Palindromische Teilstring-Abfrage in C++ Palindromische Teilstring-Abfrage in C++ Sep 22, 2023 am 09:05 AM

In diesem Tutorial müssen wir eine Palindrom-Teilzeichenfolgenabfrage für eine bestimmte Zeichenfolge lösen. Das Lösen von Palindrom-Teilzeichenfolgenabfragen ist viel komplexer als das Lösen regulärer Abfragen in C++. Es erfordert komplexeren Code und komplexere Logik. In diesem Tutorial haben wir String-Str- und Q-Substring-Abfragen [L...R] bereitgestellt, von denen jede zwei Werte L und R hat. Unser Ziel ist es, ein Programm zu schreiben, das eine Abfrage löst, um festzustellen, ob Teilzeichenfolge[L...R] ein Palindrom ist. Wir müssen bestimmen, ob der im Bereich L bis R gebildete Teilstring ein Palindrom ist, um jede Abfrage zu lösen. Geben Sie beispielsweise „abbbabaaaba“ als unsere Eingabezeichenfolge ein

Top 10 Handelsplattformen für digitale Währungs -Apps, regelmäßige Empfehlungen zur Plattform für die Währung Spekulation Plattform Top 10 Handelsplattformen für digitale Währungs -Apps, regelmäßige Empfehlungen zur Plattform für die Währung Spekulation Plattform Mar 07, 2025 pm 06:51 PM

Dieser Artikel empfiehlt zehn Währungsanlagen: 1. OKX; Bei der Auswahl einer Plattform müssen Sie Faktoren wie Sicherheit, Liquidität, Transaktionsgebühren, Währungsauswahl, Benutzeroberfläche, Kundenservice -Support und Vorschriften für den Kundendienst und die Einhaltung von Vorschriften berücksichtigen und die Risiken sorgfältig bewerten und den Trend nie blind befolgen.

Was sind die zuverlässigen digitalen Währungsplattformen? Was sind die zuverlässigen digitalen Währungsplattformen? Mar 17, 2025 pm 05:45 PM

Zuverlässige digitale Währungsplattformen gehören: 1. OKX, 2. Binance, Gate.io, 4. Huobi Global, 5. Kraken, 6. Coinbase, 7. Kucoin, 8. Bitfinex, 9. Crypto.com, 10. Gemini.

See all articles