Print all substring of a number without any conversion
Last Updated :
01 Sep, 2022
Given an integer N, the task is to print all the substring of N without doing any conversion i.e converting it into a string or an array.
Examples:
Input: N = 12345
Output: Possible Substrings: {1, 12, 123, 1234, 12345, 2, 23, 234, 2345, 3, 34, 345, 4, 45, 5}
Input: N = 123
Output: Possible Substrings: {1, 12, 123, 2, 23, 3}
Approach:
- Take the power of 10 according to size.
- Divide the number till it will become 0 and print.
- Then change the number to next the position of that number by taking the modulo with k.
- Update the no. of digits.
- Repeat the same process till n becomes 0.
Below is the implementation of above approach:
C++
// C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
// Function to print the substrings of a number
void printSubstrings(int n)
{
// Calculate the total number of digits
int s = log10(n);
// 0.5 has been added because of it will
// return double value like 99.556
int d = (int)(pow(10, s) + 0.5);
int k = d;
while (n) {
// Print all the numbers from
// starting position
while (d) {
cout << n / d << endl;
d = d / 10;
}
// Update the no.
n = n % k;
// Update the no.of digits
k = k / 10;
d = k;
}
}
// Driver code
int main()
{
int n = 123;
printSubstrings(n);
return 0;
}
Java
// Java implementation
// of above approach
import java.util.*;
import java.lang.*;
import java.io.*;
class GFG
{
// Function to print the
// substrings of a number
static void printSubstrings(int n)
{
// Calculate the total
// number of digits
int s = (int)Math.log10(n);
// 0.5 has been added because
// of it will return double
// value like 99.556
int d = (int)(Math.pow(10, s) + 0.5);
int k = d;
while (n > 0)
{
// Print all the numbers
// from starting position
while (d > 0)
{
System.out.println(n / d);
d = d / 10;
}
// Update the no.
n = n % k;
// Update the no.of digits
k = k / 10;
d = k;
}
}
// Driver code
public static void main(String args[])
{
int n = 123;
printSubstrings(n);
}
}
// This code is contributed
// by Subhadeep
Python3
# Python3 implementation of above approach
import math
# Function to print the substrings of a number
def printSubstrings(n):
# Calculate the total number of digits
s = int(math.log10(n));
# 0.5 has been added because of it will
# return double value like 99.556
d = (math.pow(10, s));
k = d;
while (n > 0):
# Print all the numbers from
# starting position
while (d > 0):
print(int(n // d));
d = int(d / 10);
# Update the no.
n = int(n % k);
# Update the no.of digits
k = int(k // 10);
d = k;
# Driver code
if __name__ == '__main__':
n = 123;
printSubstrings(n);
# This code is contributed by Rajput-Ji
C#
// C# implementation
// of above approach
using System;
class GFG
{
// Function to print the
// substrings of a number
static void printSubstrings(int n)
{
// Calculate the total
// number of digits
int s = (int)Math.Log10(n);
// 0.5 has been added because
// of it will return double
// value like 99.556
int d = (int)(Math.Pow(10, s) + 0.5);
int k = d;
while (n > 0)
{
// Print all the numbers
// from starting position
while (d > 0)
{
Console.WriteLine(n / d);
d = d / 10;
}
// Update the no.
n = n % k;
// Update the no.of digits
k = k / 10;
d = k;
}
}
// Driver code
public static void Main()
{
int n = 123;
printSubstrings(n);
}
}
// This code is contributed
// by mits
PHP
<?php
// PHP implementation of above approach
// Function to print the substrings
// of a number
function printSubstrings($n)
{
// Calculate the total number
// of digits
$s = (int)log10($n);
// 0.5 has been added because
// of it will return double
// value like 99.556
$d = (int)(pow(10, $s) + 0.5);
$k = $d;
while ($n)
{
// Print all the numbers from
// starting position
while ($d)
{
echo (int)($n / $d) . "\n";
$d = (int)($d / 10);
}
// Update the no.
$n = $n % $k;
// Update the no.of digits
$k = (int)($k / 10);
$d = $k;
}
}
// Driver code
$n = 123;
printSubstrings($n);
// This code is contributed by mits
?>
JavaScript
<script>
// javascript implementation
// of above approach
// Function to print the
// substrings of a number
function printSubstrings(n)
{
// Calculate the total
// number of digits
var s = parseInt(Math.log10(n));
// 0.5 has been added because
// of it will return double
// value like 99.556
var d = parseInt((Math.pow(10, s) + 0.5));
var k = d;
while (n > 0)
{
// Print all the numbers
// from starting position
while (d > 0)
{
document.write(parseInt(n / d)+"<br>");
d = parseInt(d / 10);
}
// Update the no.
n = n % k;
// Update the no.of digits
k = parseInt(k / 10);
d = k;
}
}
// Driver code
var n = 123;
printSubstrings(n);
// This code contributed by Princi Singh
</script>
Time Complexity: O(nlogn)
Auxiliary Space: O(1)
Similar Reads
Program to print ASCII Value of all digits of a given number Given an integer N, the task is to print the ASCII value of all digits of N. Examples: Input: N = 8Output: 8 (56)Explanation:ASCII value of 8 is 56 Input: N = 240Output:2 (50)4 (52)0 (48) Approach: Using the ASCII table shown below, the ASCII value of all the digits of N can be printed: DigitASCII V
5 min read
Convert all substrings of length 'k' from base 'b' to decimal A string defining a valid number is given. Output all the base conversions of substrings of length 'k' from base 'b' to base 10. Examples: Input : str = "12212", k = 3, b = 3. Output : 17 25 23 Explanation : All the substrings of length 'k' are : 122, 221, 212. Base conversion can be computed using
10 min read
Sum of all substrings of a string representing a number | Set 2 (Constant Extra Space) Given a string representing a number, we need to get the sum of all possible sub strings of this string.Examples : Input: s = "6759"Output: 8421Explanation: sum = 6 + 7 + 5 + 9 + 67 + 75 + 59 + 675 + 759 + 6759 = 8421Input: s = "16"Output: 23Explanation: sum = 1 + 6 + 16 = 23ApproachThe main idea is
6 min read
Sum of all substrings of a string representing a number | Set 1 Given an integer represented as a string, we need to get the sum of all possible substrings of this string.Note: It is guaranteed that sum of all substring will fit within a 32-bit integer.Examples: Input: s = "6759"Output: 8421Explanation: sum = 6 + 7 + 5 + 9 + 67 + 75 + 59 + 675 + 759 + 6759 = 842
14 min read
Print all Substrings of length n possible from the given String Given a string str and an integer N, the task is to print all possible sub-strings of length N. Examples: Input: str = âgeeksforgeeksâ, N = 3Output: gee eek eks ksf sfo for org rge gee eek eksExplanations: All possible sub-strings of length 3 are âgeeâ, âeekâ, âeksâ, âksfâ, âsfoâ, âforâ, âorgâ, ârge
8 min read
Remove leading zeros from a Number given as a string Given numeric string str, the task is to remove all the leading zeros from a given string. If the string contains only zeros, then print a single "0". Examples: Input: str = "0001234" Output: 1234 Explanation: Removal of leading substring "000" modifies the string to "1234". Hence, the final answer
7 min read