打印数字的所有子字符串,不进行任何转换

给定一个整数N,任务是打印N的所有子字符串,而不进行任何转换,即将其转换为字符串或数组。

null

例子 :

输入 :N=12345 输出 :可能的子字符串:{1,12,123,1234,12345,2,23,234,2345,3,34,345,4,45,5} 输入 :N=123 输出 :可能的子字符串:{1,12,123,2,23,3}

方法:

  1. 根据大小取10的幂。
  2. 将数字除以0,然后打印。
  3. 然后,通过取k的模,将数字改为该数字的下一个位置。
  4. 更新位数。
  5. 重复同样的过程,直到n变成0。

以下是上述方法的实施情况:

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 ) . "" ;
$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>


输出:

1121232233

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享