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

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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    

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for the above approach
#include <bits/stdc++.h>
#include <boost/algorithm/string.hpp>
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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for the above approach
#include <bits/stdc++.h>
#include <boost/algorithm/string.hpp>
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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


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.