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.
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
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.
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;
Ermitteln Sie die Anzahl der Ziffern der Endnummer
int divisor = pow(10, digits);
Divisor berechnen
int remainder = number % divisor;
Rest berechnen
return remainder == ending; }
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.
modulo-Operator wird in der folgenden C++-Prozedur verwendet, um zu bestimmen, ob eine Ganzzahl mit einer anderen Zahl −
endetSchritt 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 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; }
12345 ends with 5
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.
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);
Ü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;
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。
使用 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; }
Number 1 ends with number 2
总之,使用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!