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;
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);
}
}
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 {
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);
}
}
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
{
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);
}
}
static void Main()
{
int n = 39;
int unitDigit = n % 10;
if (unitDigit == 0) {
unitDigit = 10;
}
PrintMultiples(unitDigit, n, unitDigit);
}
}
|
Javascript
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);
}
}
function main() {
const n = 39;
let unitDigit = n % 10;
if (unitDigit === 0) {
unitDigit = 10;
}
printMultiples(unitDigit, n, unitDigit);
}
main();
|
Python3
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)
n = 39
unitDigit = n % 10
if unitDigit = = 0 :
unitDigit = 10
printMultiples(unitDigit, n, unitDigit)
|
Time Complexity: O(N)
Auxiliary Space: O(1)
Simple Approach:
- 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.
- Check if the unit digit is 0.
- If yes, then consider the multiple as 10.
- 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++
#include <iostream>
using namespace std;
void printMultiples( int n)
{
int unit_digit = n % 10;
if (unit_digit == 0)
unit_digit = 10;
for ( int i = unit_digit; i <= n; i += unit_digit)
cout << i << " " ;
}
int main()
{
int n = 39;
printMultiples(n);
return 0;
}
|
Java
import java.io.*;
class GFG
{
static void printMultiples( int n)
{
int unit_digit = n % 10 ;
if (unit_digit == 0 )
unit_digit = 10 ;
for ( int i = unit_digit; i <= n; i += unit_digit)
System.out.print( i + " " );
}
public static void main (String[] args)
{
int n = 39 ;
printMultiples(n);
}
}
|
C#
using System;
class GFG
{
static void printMultiples( int n)
{
int unit_digit = n % 10;
if (unit_digit == 0)
unit_digit = 10;
for ( int i = unit_digit; i <= n; i += unit_digit)
Console.Write( i + " " );
}
public static void Main ()
{
int n = 39;
printMultiples(n);
}
}
|
Javascript
<script>
function printMultiples(n)
{
var unit_digit = parseInt(n % 10);
if (unit_digit == 0) unit_digit = 10;
for ( var i = unit_digit; i <= n;
i += unit_digit)
document.write(i + " " );
}
var n = 39;
printMultiples(n);
</script>
|
Python3
def printMultiples(n):
unit_digit = n % 10
if (unit_digit = = 0 ):
unit_digit = 10
for i in range (unit_digit, n + 1 ,
unit_digit):
print (i, end = " " )
n = 39
printMultiples(n)
|
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
Last Updated :
09 Mar, 2024
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...