Horje
Print multiples of Unit Digit of Given Number

Given a number [Tex]N             [/Tex] The task is to print the multiples of the unit digit of N from the unit digit of N to N

Note: If the unit digit is 0 then print the multiples of 10.

Examples: 

Input : 39
Output : 9 18 27 36
Explanation : The unit digit of 39 is 9.
So the multiples of 9 between 9 and 39 are:
9, 18, 27, 36
Input : 25
Output : 5 10 15 20 25

Recursive Approach:

We can use a recursive function that takes in the current number and the unit digit of N. The function first checks if the current number is greater than N, in which case it returns without doing anything. Otherwise, it checks if the current number is a multiple of the unit digit, and if it is, it prints the number and calls itself with the next number. If the current number is not a multiple of the unit digit, it simply calls itself with the next number.

Below is the implementation of the above approach:  

C++

#include <iostream>
 
using namespace std;
 
// Recursive function to print the multiples of unit digit
void printMultiples(int current, int n, int unitDigit)
{
    if (current > n) {
        return;
    }
 
    if (current % unitDigit == 0) {
        cout << current << " ";
        printMultiples(current + unitDigit, n, unitDigit);
    } else {
        printMultiples(current + 1, n, unitDigit);
    }
}
 
// Driver Code
int main()
{
    int n = 39;
    int unitDigit = n % 10;
    if (unitDigit == 0) {
        unitDigit = 10;
    }
 
    printMultiples(unitDigit, n, unitDigit);
 
    return 0;
}

Java

import java.util.*;
 
class GFG {
    // Recursive function to print the multiples of unit
    // digit
    static void printMultiples(int current, int n,
                               int unitDigit)
    {
        if (current > n) {
            return;
        }
 
        if (current % unitDigit == 0) {
            System.out.print(current + " ");
            printMultiples(current + unitDigit, n,
                           unitDigit);
        }
        else {
            printMultiples(current + 1, n, unitDigit);
        }
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        int n = 39;
        int unitDigit = n % 10;
        if (unitDigit == 0) {
            unitDigit = 10;
        }
 
        printMultiples(unitDigit, n, unitDigit);
    }
}

C#

using System;
 
class Program
{
    // Recursive function to print the multiples of unit digit
    static void PrintMultiples(int current, int n, int unitDigit)
    {
        if (current > n) {
            return;
        }
 
        if (current % unitDigit == 0) {
            Console.Write(current + " ");
            PrintMultiples(current + unitDigit, n, unitDigit);
        } else {
            PrintMultiples(current + 1, n, unitDigit);
        }
    }
 
    // Driver Code
    static void Main()
    {
        int n = 39;
        int unitDigit = n % 10;
        if (unitDigit == 0) {
            unitDigit = 10;
        }
 
        PrintMultiples(unitDigit, n, unitDigit);
    }
}

Javascript

// Recursive function to print the multiples of the unit digit
function printMultiples(current, n, unitDigit) {
  if (current > n) {
    return;
  }
 
  if (current % unitDigit === 0) {
    process.stdout.write(current + " ");
    printMultiples(current + unitDigit, n, unitDigit);
  } else {
    printMultiples(current + 1, n, unitDigit);
  }
}
 
// Main function
function main() {
  const n = 39;
  let unitDigit = n % 10;
  if (unitDigit === 0) {
    unitDigit = 10;
  }
 
  printMultiples(unitDigit, n, unitDigit);
}
 
// Call the main function
main();

Python3

# Recursive function to print the multiples of unit digit
def printMultiples(current, n, unitDigit):
    if current > n:
        return
 
    if current % unitDigit == 0:
        print(current, end=" ")
        printMultiples(current + unitDigit, n, unitDigit)
    else:
        printMultiples(current + 1, n, unitDigit)
 
 
# Driver Code
n = 39
unitDigit = n % 10
if unitDigit == 0:
    unitDigit = 10
 
printMultiples(unitDigit, n, unitDigit)


Output

9 18 27 36

Time Complexity: O(N)

Auxiliary Space: O(1)

Simple Approach:

  1. Find the unit digit of the input number. The unit digit of N will be (N%10), i.e., remainder upon dividing N by 10.
  2. Check if the unit digit is 0. 
    • If yes, then consider the multiple as 10.
  3. Print the multiples of unit digit until it is less than or equal to the input number.

Below is the implementation of the above approach:  

C++

// C++ program to print multiples of
// Unit Digit of Given Number
#include <iostream>
 
using namespace std;
 
// Function to print the multiples
// of unit digit
void printMultiples(int n)
{
    // Find the unit digit of
    // the given number
    int unit_digit = n % 10;
 
    // if the unit digit is 0 then
    // change it to 10
    if (unit_digit == 0)
        unit_digit = 10;
 
    // print the multiples of unit digit
    // until the multiple is less than
    // or equal to n
    for (int i = unit_digit; i <= n; i += unit_digit)
        cout << i << " ";
}
 
// Driver Code
int main()
{
    int n = 39;
 
    printMultiples(n);
 
    return 0;
}

Java

// Java program to print multiples of
// Unit Digit of Given Number
import java.io.*;
 
class GFG
{
 
// Function to print the multiples
// of unit digit
static void printMultiples(int n)
{
    // Find the unit digit of
    // the given number
    int unit_digit = n % 10;
 
    // if the unit digit is 0 then
    // change it to 10
    if (unit_digit == 0)
        unit_digit = 10;
 
    // print the multiples of unit digit
    // until the multiple is less than
    // or equal to n
    for (int i = unit_digit; i <= n; i += unit_digit)
        System.out.print( i + " ");
}
 
    // Driver Code
    public static void main (String[] args)
    {
        int n = 39;
        printMultiples(n);
    }
}
 
// This code is contributed by inder_mca

C#

// C# program to print multiples of
// Unit Digit of Given Number
using System;
 
class GFG
{
     
    // Function to print the multiples
    // of unit digit
    static void printMultiples(int n)
    {
        // Find the unit digit of
        // the given number
        int unit_digit = n % 10;
     
        // if the unit digit is 0 then
        // change it to 10
        if (unit_digit == 0)
            unit_digit = 10;
     
        // print the multiples of unit digit
        // until the multiple is less than
        // or equal to n
        for (int i = unit_digit; i <= n; i += unit_digit)
            Console.Write( i + " ");
    }
     
        // Driver Code
        public static void Main ()
        {
            int n = 39;
            printMultiples(n);
        }
}
 
// This code is contributed by Ryuga

Javascript

<script>
 
      // JavaScript program to print multiples of
      // Unit Digit of Given Number
 
      // Function to print the multiples
      // of unit digit
      function printMultiples(n)
      {
        // Find the unit digit of
        // the given number
        var unit_digit = parseInt(n % 10);
 
        // if the unit digit is 0 then
        // change it to 10
        if (unit_digit == 0) unit_digit = 10;
 
        // print the multiples of unit digit
        // until the multiple is less than
        // or equal to n
        for (var i = unit_digit; i <= n;
        i += unit_digit)
          document.write(i + " ");
      }
 
      // Driver Code
      var n = 39;
      printMultiples(n);
       
</script>

Python3

# Python3 program to print multiples
# of Unit Digit of Given Number
 
# Function to print the multiples
# of unit digit
def printMultiples(n):
 
    # Find the unit digit of
    # the given number
    unit_digit = n % 10
 
    # if the unit digit is 0 then
    # change it to 10
    if (unit_digit == 0):
        unit_digit = 10
 
    # print the multiples of unit digit
    # until the multiple is less than
    # or equal to n
    for i in range(unit_digit, n + 1,
                   unit_digit):
        print(i, end = " ")
 
# Driver Code
n = 39
 
printMultiples(n)
 
# This code is contributed by Mohit Kumar


Output

9 18 27 36

Time Complexity: O(N) //since one traversal from 1 to N is required to complete all operations hence the overall time needed for the algorithm is linear

Auxiliary Space: O(1) //since no extra array is used so the space taken by the algorithm is constant




Reffered: https://www.geeksforgeeks.org


C++ Programs

Related
Biggest Square that can be inscribed within an Equilateral triangle Biggest Square that can be inscribed within an Equilateral triangle
Find Pth term of a GP if Mth and Nth terms are given Find Pth term of a GP if Mth and Nth terms are given
Largest right circular cylinder that can be inscribed within a cone which is in turn inscribed within a cube Largest right circular cylinder that can be inscribed within a cone which is in turn inscribed within a cube
Biggest Reuleaux Triangle within a Square which is inscribed within a Right angle Triangle Biggest Reuleaux Triangle within a Square which is inscribed within a Right angle Triangle
Largest square that can be inscribed within a hexagon which is inscribed within an equilateral triangle Largest square that can be inscribed within a hexagon which is inscribed within an equilateral triangle

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
8