Heim > Backend-Entwicklung > C++ > Überprüfen Sie, ob eine Nummer mit einer anderen Nummer endet

Überprüfen Sie, ob eine Nummer mit einer anderen Nummer endet

WBOY
Freigeben: 2023-08-26 13:25:03
nach vorne
1294 Leute haben es durchsucht

Überprüfen Sie, ob eine Nummer mit einer anderen Nummer endet

Eine typische Programmierherausforderung besteht darin, festzustellen, ob eine Zahl mit einer anderen Zahl endet. Um dieses Problem zu lösen, müssen Sie die letzten Ziffern einer bestimmten Nummer identifizieren und prüfen, ob sie mit einer anderen Nummer übereinstimmen. Viele Anwendungen, einschließlich Datenverarbeitung, String-Manipulation und numerische Analyse, beinhalten häufig solche Operationen. Zur Lösung dieser Herausforderung werden Programmiermethoden wie die Konvertierung von Zahlen in Zeichenfolgen, Modulo-Arithmetik und die Verwendung logischer Operatoren eingesetzt. Dieses Thema dürfte für Anfänger und fortgeschrittene Programmierer von Interesse sein, die sich im Umgang mit Zahlen und der Lösung algorithmischer Probleme verbessern möchten.

Methode

Es gibt viele Möglichkeiten zu überprüfen, ob eine Nummer mit einer anderen Nummer endet. Hier sind zwei gängige Methoden -

  • Verwenden Sie den Modulo-Operator (%)

  • Verwenden Sie die String-Konvertierung

Methode 1: Verwenden Sie den Modulo-Operator (%)

Wenn zwei Zahlen geteilt werden, gibt der Modulo-Operator den Rest zurück. Mit dem Modulo-Operator können wir bestimmen, ob eine Zahl mit einer anderen Zahl endet, indem wir die zweite Zahl als Teiler verwenden. Wenn das Ergebnis gleich der zweiten Zahl ist, endet die erste Zahl mit der zweiten Zahl.

Der häufig verwendete mathematische Operator heißt Modulo-Operator, der den Rest der Divisionsoperation zurückgibt und durch das Symbol % dargestellt wird. Eine nützliche Anwendung besteht darin, den Modulo-Operator zu verwenden, um zu überprüfen, ob eine Zahl mit einer anderen Zahl endet.

Wir können den Modulo-Operator verwenden, um den verbleibenden Wert zu erhalten, nachdem eine Zahl „n“ durch eine andere Zahl „m“ geteilt wurde, um zu bestimmen, ob die beiden Zahlen aufeinander folgen. Wenn der Rest gleich m ist, endet n in m. Wenn es nicht gleich m ist, dann ist es nicht gleich.

Grammatik

Die Syntax dieser Methode lautet wie folgt: −

  • Funktion zum Überprüfen, ob eine Nummer mit einer anderen Nummer endet

bool endsWith(int number, int ending) {
   int digits = floor(log10(ending)) + 1; 
Nach dem Login kopieren
  • Ermitteln Sie die Anzahl der Ziffern der Endnummer

int divisor = pow(10, digits); 
Nach dem Login kopieren
  • Divisor berechnen

int remainder = number % divisor; 
Nach dem Login kopieren
  • Rest berechnen

return remainder == ending; }
Nach dem Login kopieren
  • Gibt true zurück, wenn der Rest gleich der Endzahl ist

Hier ist Nummer die ursprüngliche Nummer und Ende die Nummer, um zu überprüfen, ob sie am Ende von Nummer steht. Der Ausdruck floor(log10(ending)) + 1 berechnet die Anzahl der Ziffern in ending, während pow(10, digits) den Divisor berechnet. Der Rest von Anzahl dividiert durch Divisor wird dann mit dem Modulo-Operator % berechnet. Wenn der Rest gleich ending ist, gibt die Funktion „true“ zurück, was bedeutet, dass die Nummer mit ending endet.

Algorithmus

Der

modulo-Operator wird in der folgenden C++-Prozedur verwendet, um zu bestimmen, ob eine Ganzzahl mit einer anderen Zahl −

endet

Schritt 1 – Geben Sie Num ein und beenden Sie Num, die beiden zu vergleichenden Zahlen.

Schritt 2 – Verwenden Sie den Modulo-Operator (%), um den Rest von num dividiert durch 10 zu berechnen.

Schritt 3 - Geben Sie true zurück, wenn die Zahl mit der Endziffer endet und der Rest gleich der Endziffer ist.

Schritt 4 – Wenn nicht, dividieren Sie die Zahl durch 10 und wiederholen Sie die Schritte 1-2, bis die Zahl gleich 0 ist.

Schritt 5 – Wenn die Schleife ohne Übereinstimmung endet, endet die Zahl nicht mit end Num, sodass false zurückgegeben wird.

Beispiel 1

Beispiel für die Verwendung des Modulo-Operators, um zu überprüfen, ob eine Zahl mit einer anderen Zahl endet −

In diesem Beispiel akzeptiert die Funktion „endsWith“ zwei ganzzahlige Parameter „Nummer“ und „Ende“. Verwenden Sie dann den Modulo-Operator %, um zu bestimmen, ob die letzte Ziffer der Zahl gleich dem Ende ist. Wenn dies der Fall ist, gibt die Funktion „true“ zurück, andernfalls gibt sie „false“ zurück.

Bevor wir die Methode „endsWith“ aufrufen, definieren wir zunächst Zahl und Ende in der Hauptfunktion. Wenn die Methode „true“ zurückgibt, geben wir eine Meldung aus, die besagt, dass die Nummer mit „ending“ endet. Wenn nicht, drucken Sie eine Nachricht aus, die besagt, dass die Nummer nicht mit der Endung endet.

Es ist wichtig zu beachten, dass dies nur ein sehr einfaches Beispiel ist. Es gibt viele verschiedene Methoden (z. B. Methoden zur Zeichenfolgenmanipulation), um festzustellen, ob eine Zahl mit einer anderen Zahl endet. Der Modulo-Operator ist eine beliebte und effektive Technik.

#include <iostream>
using namespace std;

bool endsWith(int number, int ending) {
   return (number % 10) == ending; // Check if last digit is equal to ending
}

int main() {
   int number = 12345;
   int ending = 5;

   if (endsWith(number, ending)) {
      cout << number << " ends with " << ending << endl;
   }
   else {
      cout << number << " does not end with " << ending << endl;
   }

   return 0;
}
Nach dem Login kopieren

Ausgabe

12345 ends with 5
Nach dem Login kopieren

Methode 2: String-Konvertierung verwenden

Mithilfe von String-Manipulationsfunktionen prüft diese Technik, ob die Enden zweier Ganzzahlen übereinstimmen, indem sie sie in Strings umwandelt. Ein gängiger Ansatz besteht darin, die Funktion to_string() zu verwenden, um eine Zahl in eine Zeichenfolge umzuwandeln und dann herauszufinden, ob die letzten paar Zeichen der ersten Zeichenfolge mit den letzten paar Zeichen der zweiten Zeichenfolge übereinstimmen.

Grammatik

Das Folgende ist die Syntax für eine String-Konvertierungsmethode in C++, die prüft, ob eine Zahl mit einer anderen Zahl endet, ohne den eigentlichen Code:

  • Zahl in Zeichenfolge umwandeln

string num1_str = to_string(num1);
string num2_str = to_string(num2);
Nach dem Login kopieren
  • Überprüfen Sie, ob die letzten paar Zeichen der Zeichenfolge gleich sind

bool ends_with = num1_str.substr(num1_str.size() - num2_str.size()) == num2_str;
Nach dem Login kopieren

Algorithmus

Hier ist ein C++-Algorithmus, um zu bestimmen, ob eine Zahl mit einer anderen Zahl endet −

Schritt 1 – Beginnen Sie mit der Erstellung von Zeichenfolgen für diese beiden Ganzzahlen.

Schritt 2 – Angenommen, die zweite ganze Zahl heißt n, bestimmen Sie ihre Länge.

步骤 3 - 如果第一个数字的长度小于 n,则返回 false。

步骤 4 − 将 substr 方法应用于第一个数字,以提取最后 n 位数字。

第五步 - 使用stoi方法将第二个数字和检索到的子字符串转换为整数。比较这两个整数

步骤6 - 如果它们相等,则返回true。如果不相等,则返回false。

Example 2

使用 to_string() 函数将这两个数字转换为字符串。然后使用 substr() 函数提取第一个字符串的最后几个字符,使其与第二个字符串的长度相匹配。然后使用 == 运算符将这些提取的字符与第二个字符串进行比较。

#include <iostream>
#include <string>

using namespace std;

int main() {
   int num1 = 123456;
   int num2 = 56;

   string str1 = to_string(num1);
   string str2 = to_string(num2);

   if (str1.substr(str1.length() - str2.length()) == str2) {
      cout << "Number 1 ends with number 2" << endl;
   } else {
      cout << "Number 1 does not end with number 2" << endl;
   }

   return 0;
}
Nach dem Login kopieren

输出

Number 1 ends with number 2
Nach dem Login kopieren

结论

总之,使用substr()函数比较每个字符串的最后几个字符,或者使用模运算来分离每个数字的最后几位数并直接比较它们,这两种方法都可以判断一个数字是否以另一个数字结尾。这两种策略都很有效,并且可以使用基本的C++编程结构来实践。许多需要模式匹配的数值和计算应用都可以从这个任务中受益。

Das obige ist der detaillierte Inhalt vonÜberprüfen Sie, ob eine Nummer mit einer anderen Nummer endet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage