# Check if a number ends with another number or not

• Last Updated : 22 Nov, 2021

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

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`

## Javascript

 ``  ` `

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`

## Javascript

 ``

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`

## Javascript

 ``

Output:

`Yes`

Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up