Given two integers N and X. Make a number in such a way that the number contains the first and last digit occurring in .
Examples :
Input : N = 10, X = 5 Output : 1010101010 Explanation : 10^1 = 10 10^2 = 100 10^3 = 1000 10^4 = 10000 10^5 = 100000 Take First and Last Digit of each Power to get required number. Input : N = 19, X = 4 Output : 19316911 Explanation : 19^1 = 19 19^2 = 361 19^3 = 6859 19^4 = 130321 Take First and Last Digit of each Power to get required number.
Recommended: Please solve it on “PRACTICE“first, before moving on to the solution.
Approach :
- Calculate all Powers of N from 1 to X one by one.
- Store the Output in power[] array.
- Store power[0] i.e, last_digit and power[power_size – 1] i.e, unit_digit from power[] array to result[] array.
- Print the result[] Array.
Below is the implementation of the above approach :
C++
// C++ program to find number formed by // corner digits of powers. #include <bits/stdc++.h> using namespace std; // Find next power by multiplying N with // current power void nextPower( int N, vector< int > &power) { int carry = 0; for ( int i=0 ; i < power.size(); i++) { int prod = (power[i] * N) + carry ; // Store digits of Power one by one. power[i] = prod % 10 ; // Calculate carry. carry = prod / 10 ; } while (carry) { // Store carry in Power array. power.push_back(carry % 10); carry = carry / 10 ; } } // Prints number formed by corner digits of // powers of N. void printPowerNumber( int X, int N) { // Storing N raised to power 0 vector< int > power; power.push_back(1); // Initializing empty result vector< int > res; // One by one compute next powers and // add their corner digits. for ( int i=1; i<=X; i++) { // Call Function that store power // in Power array. nextPower(N, power) ; // Store unit and last digits of // power in res. res.push_back(power.back()); res.push_back(power.front()); } for ( int i=0 ; i < res.size(); i++) cout << res[i] ; } // Driver Code int main() { int N = 19 , X = 4; printPowerNumber(X, N); return 0 ; } |
Java
// Java program to find number formed by // corner digits of powers. import java.io.*; import java.util.*; public class GFG { static List<Integer> power = new ArrayList<Integer>(); // Find next power by multiplying N // with current power static void nextPower(Integer N) { Integer carry = 0 ; for ( int i = 0 ; i < power.size(); i++) { Integer prod = (power.get(i) * N) + carry ; // Store digits of Power one by one. power.set(i,prod % 10 ); // Calculate carry. carry = prod / 10 ; } while (carry >= 1 ) { // Store carry in Power array. power.add(carry % 10 ); carry = carry / 10 ; } } // Prints number formed by corner digits of // powers of N. static void printPowerNumber( int X, int N) { // Storing N raised to power 0 power.add( 1 ); // Initializing empty result List<Integer> res = new ArrayList<Integer>(); // One by one compute next powers and // add their corner digits. for ( int i = 1 ; i <= X; i++) { // Call Function that store power // in Power array. nextPower(N) ; // Store unit and last digits of // power in res. res.add(power.get(power.size() - 1 )); res.add(power.get( 0 )); } for ( int i = 0 ; i < res.size(); i++) System.out.print(res.get(i)) ; } // Driver Code public static void main(String args[]) { Integer N = 19 , X = 4 ; printPowerNumber(X, N); } } // This code is contributed by Manish Shaw // (manishshaw1) |
Python3
# Python3 program to find # number formed by # corner digits of powers. # Storing N raised to power 0 power = [] # Find next power by multiplying # N with current power def nextPower(N) : global power carry = 0 for i in range ( 0 , len (power)) : prod = (power[i] * N) + carry # Store digits of # Power one by one. power[i] = prod % 10 # Calculate carry. carry = ( int )(prod / 10 ) while (carry) : # Store carry in Power array. power.append(carry % 10 ) carry = ( int )(carry / 10 ) # Prints number formed by corner # digits of powers of N. def printPowerNumber(X, N) : global power power.append( 1 ) # Initializing empty result res = [] # One by one compute next powers # and add their corner digits. for i in range ( 1 , X + 1 ) : # Call Function that store # power in Power array. nextPower(N) # Store unit and last # digits of power in res. res.append(power[ - 1 ]) res.append(power[ 0 ]) for i in range ( 0 , len (res)) : print (res[i], end = "") # Driver Code N = 19 X = 4 printPowerNumber(X, N) # This code is contributed by # Manish Shaw(manishshaw1) |
C#
// C# program to find number formed by // corner digits of powers. using System; using System.Collections.Generic; using System.Linq; using System.Collections; class GFG { // Find next power by multiplying N // with current power static void nextPower( int N, ref List< int > power) { int carry = 0; for ( int i = 0; i < power.Count; i++) { int prod = (power[i] * N) + carry ; // Store digits of Power one by one. power[i] = prod % 10 ; // Calculate carry. carry = prod / 10 ; } while (carry >= 1) { // Store carry in Power array. power.Add(carry % 10); carry = carry / 10 ; } } // Prints number formed by corner digits of // powers of N. static void printPowerNumber( int X, int N) { // Storing N raised to power 0 List< int > power = new List< int >(); power.Add(1); // Initializing empty result List< int > res = new List< int >(); // One by one compute next powers and // add their corner digits. for ( int i = 1; i <= X; i++) { // Call Function that store power // in Power array. nextPower(N, ref power) ; // Store unit and last digits of // power in res. res.Add(power.Last()); res.Add(power.First()); } for ( int i = 0 ; i < res.Count; i++) Console.Write(res[i]) ; } // Driver Code public static void Main() { int N = 19 , X = 4; printPowerNumber(X, N); } } // This code is contributed by Manish Shaw // (manishshaw1) |
PHP
<?php // PHP program to find // number formed by // corner digits of powers. // Find next power by multiplying // N with current power function nextPower( $N , & $power ) { $carry = 0; for ( $i = 0 ; $i < count ( $power ); $i ++) { $prod = ( $power [ $i ] * $N ) + $carry ; // Store digits of // Power one by one. $power [ $i ] = $prod % 10 ; // Calculate carry. $carry = (int)( $prod / 10) ; } while ( $carry ) { // Store carry in Power array. array_push ( $power , $carry % 10); $carry = (int)( $carry / 10) ; } } // Prints number formed by corner // digits of powers of N. function printPowerNumber( $X , $N ) { // Storing N raised to power 0 $power = array (); array_push ( $power , 1); // Initializing empty result $res = array (); // One by one compute next powers // and add their corner digits. for ( $i = 1; $i <= $X ; $i ++) { // Call Function that store // power in Power array. nextPower( $N , $power ) ; // Store unit and last // digits of power in res. array_push ( $res , $power [ count ( $power ) - 1]); array_push ( $res , $power [0]); } for ( $i = 0 ; $i < count ( $res ); $i ++) echo ( $res [ $i ]) ; } // Driver Code $N = 19; $X = 4; printPowerNumber( $X , $N ); // This code is contributed by // Manish Shaw(manishshaw1) ?> |
Javascript
<script> // JavaScript program to find number formed by // corner digits of powers. // Find next power by multiplying N with // current power function nextPower(N, power) { var carry = 0; for ( var i=0 ; i < power.length; i++) { var prod = (power[i] * N) + carry ; // Store digits of Power one by one. power[i] = prod % 10 ; // Calculate carry. carry = parseInt(prod / 10); } while (carry>=1) { // Store carry in Power array. power.push(carry % 10); carry = parseInt(carry / 10); } return power; } // Prints number formed by corner digits of // powers of N. function printPowerNumber( X, N) { // Storing N raised to power 0 var power = []; power.push(1); // Initializing empty result var res = []; // One by one compute next powers and // add their corner digits. for ( var i=1; i<=X; i++) { // Call Function that store power // in Power array. power = nextPower(N, power) ; // Store unit and last digits of // power in res. res.push(power[power.length-1]); res.push(power[0]); } for ( var i=0 ; i < res.length; i++) document.write( res[i] ); } // Driver Code var N = 19 , X = 4; printPowerNumber(X, N); </script> |
19316911
Time Complexity: O(XlogX)
Auxiliary Space: O(N)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!