# Check if a number ends with another number or not

Given two numbers A and B where (A > B), the task is to check if B is a suffix of A or not. Print “Yes” if it is a suffix Else print “No”.

Examples:

Input: A = 12345, B = 45
Output: Yes

Input: A = 12345, B = 123
Output: No

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Method 1:

1. Convert the given numbers A and B to strings str1 and str2 respectively.
2. Traverse both the strings from the end of the strings.
3. While traversing the strings, if at any index characters from str1 and str2 are unequal then print “No”.
4. Else print “Yes”.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach ` `#include "bits/stdc++.h" ` `using` `namespace` `std; ` ` `  `// Function to check if B is a ` `// suffix of A or not ` `bool` `checkSuffix(``int` `A, ``int` `B) ` `{ ` ` `  `    ``// Convert numbers into strings ` `    ``string s1 = to_string(A); ` `    ``string s2 = to_string(B); ` ` `  `    ``// Find the lengths of strings ` `    ``// s1 and s2 ` `    ``int` `n1 = s1.length(); ` `    ``int` `n2 = s2.length(); ` ` `  `    ``// Base Case ` `    ``if` `(n1 < n2) { ` `        ``return` `false``; ` `    ``} ` ` `  `    ``// Traverse the strings s1 & s2 ` `    ``for` `(``int` `i = 0; i < n2; i++) { ` ` `  `        ``// If at any index characters ` `        ``// are unequals then return false ` `        ``if` `(s1[n1 - i - 1] ` `            ``!= s2[n2 - i - 1]) { ` `            ``return` `false``; ` `        ``} ` `    ``} ` ` `  `    ``// Return true ` `    ``return` `true``; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``// Given numbers ` `    ``int` `A = 12345, B = 45; ` ` `  `    ``// Function Call ` `    ``bool` `result = checkSuffix(A, B); ` ` `  `    ``// If B is a suffix of A, then ` `    ``// print "Yes" ` `    ``if` `(result) { ` `        ``cout << ``"Yes"``; ` `    ``} ` `    ``else` `{ ` `        ``cout << ``"No"``; ` `    ``} ` `    ``return` `0; ` `} `

## Java

 `// Java program for the above approach ` `class` `GFG{ ` `     `  `// Function to check if B    ` `// is a suffix of A or not  ` `public` `static` `boolean` `checkSuffix(``int` `A,  ` `                                  ``int` `B)  ` `{  ` `     `  `    ``// Convert numbers into strings  ` `    ``String s1 = String.valueOf(A);  ` `    ``String s2 = String.valueOf(B);  ` `     `  `    ``// Find the lengths of strings  ` `    ``// s1 and s2  ` `    ``int` `n1 = s1.length();  ` `    ``int` `n2 = s2.length();  ` `     `  `    ``// Base case  ` `    ``if` `(n1 < n2) ` `    ``{  ` `        ``return` `false``;  ` `    ``}  ` `     `  `    ``// Traverse the strings s1 & s2  ` `    ``for``(``int` `i = ``0``; i < n2; i++)  ` `    ``{  ` `         `  `       ``// If at any index characters  ` `       ``// are unequals then return false  ` `       ``if` `(s1.charAt(n1 - i - ``1``) !=  ` `           ``s2.charAt(n2 - i - ``1``)) ` `       ``{  ` `           ``return` `false``;  ` `       ``}  ` `    ``}  ` `     `  `    ``// Return true  ` `    ``return` `true``;  ` `}  ` ` `  `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` `         `  `    ``// Given numbers  ` `    ``int` `A = ``12345``, B = ``45``;  ` `     `  `    ``// Function Call  ` `    ``boolean` `result = checkSuffix(A, B);  ` `     `  `    ``// If B is a suffix of A,   ` `    ``// then print "Yes"  ` `    ``if` `(result) ` `    ``{  ` `        ``System.out.print(``"Yes"``); ` `    ``}  ` `    ``else` `    ``{  ` `        ``System.out.println(``"No"``); ` `    ``}  ` `} ` `} ` ` `  `// This code is contributed by divyeshrabadiya07 `

## Python3

 `# Python3 program for the above approach  ` ` `  `# Function to check if B is a  ` `# suffix of A or not  ` `def` `checkSuffix(A, B): ` ` `  `    ``# Convert numbers into strings  ` `    ``s1 ``=` `str``(A);  ` `    ``s2 ``=` `str``(B);  ` ` `  `    ``# Find the lengths of strings  ` `    ``# s1 and s2  ` `    ``n1 ``=` `len``(s1)  ` `    ``n2 ``=` `len``(s2)  ` ` `  `    ``# Base Case  ` `    ``if` `(n1 < n2):  ` `        ``return` `False``;  ` `     `  `    ``# Traverse the strings s1 & s2  ` `    ``for` `i ``in` `range``(n2):  ` ` `  `        ``# If at any index characters  ` `        ``# are unequals then return false  ` `        ``if` `(s1[n1 ``-` `i ``-` `1``] !``=` `s2[n2 ``-` `i ``-` `1``]): ` `            ``return` `False``;  ` `             `  `    ``# Return true  ` `    ``return` `True``;  ` `     `  `# Driver Code  ` ` `  `# Given numbers  ` `A ``=` `12345` `B ``=` `45``;  ` ` `  `# Function Call  ` `result ``=` `checkSuffix(A, B);  ` ` `  `# If B is a suffix of A, then  ` `# print "Yes"  ` `if` `(result):  ` `    ``print``(``"Yes"``) ` `else``:  ` `    ``print``(``"No"``) ` ` `  `# This code is contributed by grand_master     `

## C#

 `// C# program for the above approach  ` `using` `System; ` `class` `GFG{  ` `     `  `// Function to check if B  ` `// is a suffix of A or not  ` `public` `static` `bool` `checkSuffix(``int` `A,  ` `                               ``int` `B)  ` `{  ` `     `  `    ``// Convert numbers into strings  ` `    ``string` `s1 = A.ToString();  ` `    ``string` `s2 = B.ToString();  ` `     `  `    ``// Find the lengths of strings  ` `    ``// s1 and s2  ` `    ``int` `n1 = s1.Length;  ` `    ``int` `n2 = s2.Length;  ` `     `  `    ``// Base case  ` `    ``if` `(n1 < n2)  ` `    ``{  ` `        ``return` `false``;  ` `    ``}  ` `     `  `    ``// Traverse the strings s1 & s2  ` `    ``for``(``int` `i = 0; i < n2; i++)  ` `    ``{  ` `         `  `        ``// If at any index characters  ` `        ``// are unequals then return false  ` `        ``if` `(s1[n1 - i - 1] !=  s2[n2 - i - 1]) ` `        ``{  ` `            ``return` `false``;  ` `        ``}  ` `    ``}  ` `     `  `    ``// Return true  ` `    ``return` `true``;  ` `}  ` ` `  `// Driver code  ` `public` `static` `void` `Main(``string``[] args)  ` `{  ` `         `  `    ``// Given numbers  ` `    ``int` `A = 12345, B = 45;  ` `     `  `    ``// Function Call  ` `    ``bool` `result = checkSuffix(A, B);  ` `     `  `    ``// If B is a suffix of A,  ` `    ``// then print "Yes"  ` `    ``if` `(result)  ` `    ``{  ` `        ``Console.Write(``"Yes"``);  ` `    ``}  ` `    ``else` `    ``{  ` `        ``Console.Write(``"No"``);  ` `    ``}  ` `}  ` `}  ` ` `  `// This code is contributed by rutvik_56 `

Output:

```Yes
```

Method 2: Using inbuilt function std::boost::algorithm::ends_with() which is included in Boost Library of C++ which is used to check whether any string contains suffix of another string or not.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach ` `#include ` `#include ` `using` `namespace` `std; ` ` `  `// Function to check if B is a ` `// suffix of A or not ` `void` `checkSuffix(``int` `A, ``int` `B) ` `{ ` ` `  `    ``// Convert numbers into strings ` `    ``string s1 = to_string(A); ` `    ``string s2 = to_string(B); ` ` `  `    ``bool` `result; ` ` `  `    ``// Check if s2 is a suffix of s1 ` `    ``// or not using ends_with() function ` `    ``result = boost::algorithm::ends_with(s1, ` `                                         ``s2); ` ` `  `    ``// If result is true, print "Yes" ` `    ``if` `(result) { ` `        ``cout << ``"Yes"``; ` `    ``} ` `    ``else` `{ ` `        ``cout << ``"No"``; ` `    ``} ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``// Given numbers ` `    ``int` `A = 12345, B = 45; ` ` `  `    ``// Function Call ` `    ``checkSuffix(A, B); ` `    ``return` `0; ` `} `

## Java

 `// Java program for the above approach ` `import` `java.util.*; ` ` `  `class` `GFG{ ` ` `  `// Function to check if B is a ` `// suffix of A or not ` `static` `void` `checkSuffix(``int` `A, ``int` `B) ` `{ ` ` `  `    ``// Convert numbers into Strings ` `    ``String s1 = String.valueOf(A); ` `    ``String s2 = String.valueOf(B); ` ` `  `    ``boolean` `result; ` ` `  `    ``// Check if s2 is a suffix of s1 ` `    ``// or not  ` `    ``result = s1.endsWith(s2); ` ` `  `    ``// If result is true, print "Yes" ` `    ``if` `(result) ` `    ``{ ` `        ``System.out.print(``"Yes"``); ` `    ``} ` `    ``else`  `    ``{ ` `        ``System.out.print(``"No"``); ` `    ``} ` `} ` ` `  `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``// Given numbers ` `    ``int` `A = ``12345``, B = ``45``; ` ` `  `    ``// Function Call ` `    ``checkSuffix(A, B); ` `} ` `} ` ` `  `// This code is contributed by 29AjayKumar `

## Python3

 `# Python3 program for the above approach ` ` `  `# Function to check if B is  ` `# a suffix of A or not ` `def` `checkSuffix(A, B): ` ` `  `    ``# Convert numbers into strings ` `    ``s1 ``=` `str``(A) ` `    ``s2 ``=` `str``(B) ` ` `  `    ``# Check if s2 is a suffix of s1 ` `    ``# or not  ` `    ``result ``=` `s1.endswith(s2) ` ` `  `    ``# If result is true print "Yes" ` `    ``if` `(result): ` `        ``print``(``"Yes"``) ` `    ``else``: ` `        ``print``(``"No"``) ` ` `  `# Driver code ` `if` `__name__ ``=``=` `'__main__'``: ` ` `  `    ``# Given numbers ` `    ``A ``=` `12345` `    ``B ``=` `45` ` `  `    ``# Function call ` `    ``checkSuffix(A, B) ` ` `  `# This code is contributed by himanshu77 `

## C#

 `// C# program for the above approach ` `using` `System; ` ` `  `class` `GFG{ ` ` `  `// Function to check if B is a ` `// suffix of A or not ` `static` `void` `checkSuffix(``int` `A, ``int` `B) ` `{ ` ` `  `    ``// Convert numbers into Strings ` `    ``String s1 = String.Join(``""``, A); ` `    ``String s2 = String.Join(``""``, B); ` ` `  `    ``bool` `result; ` ` `  `    ``// Check if s2 is a suffix of s1 ` `    ``// or not  ` `    ``result = s1.EndsWith(s2); ` ` `  `    ``// If result is true, print "Yes" ` `    ``if` `(result) ` `    ``{ ` `        ``Console.Write(``"Yes"``); ` `    ``} ` `    ``else` `    ``{ ` `        ``Console.Write(``"No"``); ` `    ``} ` `} ` ` `  `// Driver Code ` `public` `static` `void` `Main(String[] args) ` `{ ` `    ``// Given numbers ` `    ``int` `A = 12345, B = 45; ` ` `  `    ``// Function Call ` `    ``checkSuffix(A, B); ` `} ` `} ` ` `  `// This code is contributed by 29AjayKumar `

Output:

```Yes
```

Method 3:

1. Subtract B from A.
2. Find the number of digits in B(say X) by using the Method 3 discussed in this article.
3. Check whether A ends with atleast X number zeros or not. If yes then print “Yes”.
4. Else print “No”.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach ` `#include ` `#include ` `using` `namespace` `std; ` ` `  `// Function to check if B is a ` `// suffix of A or not ` `bool` `checkSuffix(``int` `A, ``int` `B) ` `{ ` ` `  `    ``// Find the number of digit in B ` `    ``int` `digit_B = ``log10``(B) + 1; ` ` `  `    ``// Subtract B from A ` `    ``A -= B; ` ` `  `    ``// Returns true, ` `    ``// if B is a suffix of A ` `    ``return` `(A % ``int``(``pow``(10, digit_B))); ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``// Given numbers ` `    ``int` `A = 12345, B = 45; ` ` `  `    ``// Function Call ` `    ``bool` `result = checkSuffix(A, B); ` ` `  `    ``// If B is a suffix of A, then ` `    ``// print "Yes" ` `    ``if` `(!result) { ` `        ``cout << ``"Yes"``; ` `    ``} ` `    ``else` `{ ` `        ``cout << ``"No"``; ` `    ``} ` `    ``return` `0; ` `} `

## Java

 `// Java program for the above approach ` `import` `java.util.*; ` ` `  `class` `GFG{ ` ` `  `// Function to check if B  ` `// is a suffix of A or not ` `static` `boolean` `checkSuffix(``int` `A, ``int` `B) ` `{ ` ` `  `    ``// Find the number of digit in B ` `    ``int` `digit_B = (``int``) (Math.log10(B) + ``1``); ` ` `  `    ``// Subtract B from A ` `    ``A -= B; ` ` `  `    ``// Returns true, ` `    ``// if B is a suffix of A ` `    ``return` `(A % (``int``)(Math.pow(``10``, digit_B)) > ``0``); ` `} ` ` `  `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` ` `  `    ``// Given numbers ` `    ``int` `A = ``12345``, B = ``45``; ` ` `  `    ``// Function call ` `    ``boolean` `result = checkSuffix(A, B); ` ` `  `    ``// If B is a suffix of A,  ` `    ``// then print "Yes" ` `    ``if` `(!result) ` `    ``{ ` `        ``System.out.print(``"Yes"``); ` `    ``} ` `    ``else`  `    ``{ ` `        ``System.out.print(``"No"``); ` `    ``} ` `} ` `} ` ` `  `// This code is contributed by 29AjayKumar `

## Python3

 `# Python3 program for the above approach ` `import` `math ` ` `  `# Function to check if B is a ` `# suffix of A or not ` `def` `checkSuffix(A, B): ` ` `  `    ``# Find the number of digit in B ` `    ``digit_B ``=` `int``(math.log10(B)) ``+` `1``; ` ` `  `    ``# Subtract B from A ` `    ``A ``-``=` `B; ` ` `  `    ``# Returns true, ` `    ``# if B is a suffix of A ` `    ``return` `(A ``%` `int``(math.``pow``(``10``, digit_B))); ` ` `  `# Driver Code ` ` `  `# Given numbers ` `A ``=` `12345``; B ``=` `45``; ` ` `  `# Function Call ` `result ``=` `checkSuffix(A, B); ` ` `  `# If B is a suffix of A, then ` `# print "Yes" ` `if` `(result ``=``=` `0``): ` `    ``print``(``"Yes"``); ` ` `  `else``:  ` `    ``print``(``"No"``); ` ` `  `# This code is contributed by Nidhi_biet `

## C#

 `// C# program for the above approach ` `using` `System; ` `class` `GFG{ ` ` `  `// Function to check if B  ` `// is a suffix of A or not ` `static` `bool` `checkSuffix(``int` `A, ``int` `B) ` `{ ` ` `  `    ``// Find the number of digit in B ` `    ``int` `digit_B = (``int``)(Math.Log10(B) + 1); ` ` `  `    ``// Subtract B from A ` `    ``A -= B; ` ` `  `    ``// Returns true, ` `    ``// if B is a suffix of A ` `    ``return` `(A % (``int``)(Math.Pow(10, digit_B)) > 0); ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main() ` `{ ` ` `  `    ``// Given numbers ` `    ``int` `A = 12345, B = 45; ` ` `  `    ``// Function call ` `    ``bool` `result = checkSuffix(A, B); ` ` `  `    ``// If B is a suffix of A,  ` `    ``// then print "Yes" ` `    ``if` `(!result) ` `    ``{ ` `        ``Console.Write(``"Yes"``); ` `    ``} ` `    ``else` `    ``{ ` `        ``Console.Write(``"No"``); ` `    ``} ` `} ` `} ` ` `  `// This code is contributed by Code_Mech `

Output:

```Yes
```

Time Complexity: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.