Given an integer N, the task is to find the smallest and largest N-digit numbers in Octal Number System.
Examples:
Input: N = 4
Output:
Largest: 7777
Smallest: 1000Input: N = 2
Output:
Largest: 77
Smallest: 10
Approach: The following steps can be followed to compute the required answer:
- Largest Number: To get the largest number, every digit of the number must be maximum. The maximum digit in the Octal number system is ‘7‘. Therefore:
1 Digit Largest Number: '7' 2 Digit Largest Number: '77' 3 Digit Largest Number: '777' . . . N Digit Largest Number: '777....(N) times'
- Smallest Number: The smallest number in Octal number is ‘0‘. The idea is that the first digit needs to be as minimum as possible other than 0 which is ‘1’ and the remaining digits needs to be 0. Therefore:
1 Digit Smallest Number: '1' 2 Digit Smallest Number: '10' 3 Digit Smallest Number: '100' . . . N Digit Smallest Number: '100....(N - 1) times'
Below is the implementation of the above approach:
C++
// C++ program to find the largest // and smallest N-digit numbers // in Octal Number System #include <bits/stdc++.h> using namespace std; // Function to return the largest // N-digit number in Octal // Number System string findLargest( int N) { // Append '7' N times string largest = string(N, '7' ); return largest; } // Function to return the smallest // N-digit number in Octal // Number System string findSmallest( int N) { // Append '0' (N - 1) times to 1 string smallest = "1" + string((N - 1), '0' ); return smallest; } // Function to print the largest and // smallest N-digit Octal number void printLargestSmallest( int N) { cout << "Largest: " << findLargest(N) << endl; cout << "Smallest: " << findSmallest(N) << endl; } // Driver code int main() { int N = 4; // Function Call printLargestSmallest(N); return 0; } |
Java
// Java program to find the largest // and smallest N-digit numbers // in Octal Number System import java.util.*; import java.io.*; class GFG { // Function to return the largest // N-digit number in Octal // Number System static String findLargest( int N) { // Append '7' N times String largest = strings(N, '7' ); return largest; } // Function to return the smallest // N-digit number in Octal // Number System static String findSmallest( int N) { // Append '0' (N - 1) times to 1 String smallest = "1" + strings((N - 1 ), '0' ); return smallest; } private static String strings( int N, char c) { String temp = "" ; for ( int i= 0 ; i < N; i++) { temp+=c; } return temp; } // Function to print the largest and // smallest N-digit Octal number static void printLargestSmallest( int N) { System.out.print( "Largest: " + findLargest(N) + "\n" ); System.out.print( "Smallest: " + findSmallest(N) + "\n" ); } // Driver code public static void main(String[] args) { int N = 4 ; // Function Call printLargestSmallest(N); } } // This code is contributed by 29AjayKumar |
Python3
# Python program to find the largest # and smallest N-digit numbers # in Octal Number System # Function to return the largest # N-digit number in Octal # Number System def findLargest(N): # Append '7' N times largest = strings(N, '7' ); return largest; # Function to return the smallest # N-digit number in Octal # Number System def findSmallest(N): # Append '0' (N - 1) times to 1 smallest = "1" + strings((N - 1 ), '0' ); return smallest; def strings(N, c): temp = ""; for i in range (N): temp + = c; return temp; # Function to print the largest and # smallest N-digit Octal number def printLargestSmallest(N): print ( "Largest: " ,findLargest(N)); print ( "Smallest: " ,findSmallest(N)); # Driver code if __name__ = = '__main__' : N = 4 ; # Function Call printLargestSmallest(N); # This code is contributed by sapnasingh4991 |
C#
// C# program to find the largest // and smallest N-digit numbers // in Octal Number System using System; class GFG { // Function to return the largest // N-digit number in Octal // Number System static String findLargest( int N) { // Append '7' N times String largest = strings(N, '7' ); return largest; } // Function to return the smallest // N-digit number in Octal // Number System static String findSmallest( int N) { // Append '0' (N - 1) times to 1 String smallest = "1" + strings((N - 1), '0' ); return smallest; } private static String strings( int N, char c) { String temp = "" ; for ( int i= 0; i < N; i++) { temp+=c; } return temp; } // Function to print the largest and // smallest N-digit Octal number static void printLargestSmallest( int N) { Console.Write( "Largest: " + findLargest(N) + "\n" ); Console.Write( "Smallest: " + findSmallest(N) + "\n" ); } // Driver code public static void Main(String[] args) { int N = 4; // Function Call printLargestSmallest(N); } } // This code is contributed by PrinciRaj1992 |
Javascript
<script> // Javascript program to find the largest // and smallest N-digit numbers // in Octal Number System // Function to return the largest // N-digit number in Octal // Number System function findLargest(N) { // Append '7' N times var largest = new Array(N+1).join( '7' ); return largest; } // Function to return the smallest // N-digit number in Octal // Number System function findSmallest(N) { // Append '0' (N - 1) times to 1 var smallest = "1" + new Array(N).join( '0' ); return smallest; } // Function to print the largest and // smallest N-digit Octal number function printLargestSmallest(N) { document.write( "Largest: " + findLargest(N) + "<br>" ); document.write( "Smallest: " + findSmallest(N)); } // Driver code var N = 4; // Function Call printLargestSmallest(N); </script> |
Largest: 7777 Smallest: 1000
Time Complexity: O(N) where N is the length of the string.
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!