Given two numbers x and n, we need to multiply x with 2n
Examples :
Input : x = 25, n = 3 Output : 200 25 multiplied by 2 raised to power 3 is 200. Input : x = 70, n = 2 Output : 280
A simple solution is to compute n-th power of 2 and then multiply with x.
C++
// Simple C/C++ program // to compute x * (2^n) #include <bits/stdc++.h> using namespace std;
typedef long long int ll;
// Returns 2 raised to power n ll power2(ll n) { if (n == 0)
return 1;
if (n == 1)
return 2;
return power2(n / 2) *
power2(n / 2);
} ll multiply(ll x, ll n) { return x * power2(n);
} // Driven program int main()
{ ll x = 70, n = 2;
cout<<multiply(x, n);
return 0;
} |
Java
// Simple Java program // to compute x * (2^n) import java.util.*;
class GFG {
// Returns 2 raised to power n
static long power2( long n)
{
if (n == 0 )
return 1 ;
if (n == 1 )
return 2 ;
return power2(n / 2 )
* power2(n / 2 );
}
static long multiply( long x, long n)
{
return x * power2(n);
}
/* Driver program */
public static void main(String[] args)
{
long x = 70 , n = 2 ;
System.out.println(multiply(x, n));
}
} // This code is contributed by Arnav Kr. Mandal. |
Python3
# Simple Python program # to compute x * (2^n) # Returns 2 raised to power n def power2(n):
if (n = = 0 ):
return 1
if (n = = 1 ):
return 2
return power2(n / 2 ) *
power2(n / 2 );
def multiply(x, n):
return x * power2(n);
# Driven program x = 70
n = 2
print (multiply(x, n))
# This code is contributed by Smitha Dinesh Semwal |
C#
// Simple C# program // to compute x * (2^n) using System;
class GFG {
// Returns 2 raised to power n
static long power2( long n)
{
if (n == 0)
return 1;
if (n == 1)
return 2;
return power2(n / 2)
* power2(n / 2);
}
static long multiply( long x, long n)
{
return x * power2(n);
}
/* Driver program */
public static void Main()
{
long x = 70, n = 2;
Console.WriteLine(multiply(x, n));
}
} // This code is contributed by Vt_m. |
PHP
<?php // Simple PHP program // to compute x * (2^n) // Returns 2 raised to power n function power2( $n )
{ if ( $n == 0)
return 1;
if ( $n == 1)
return 2;
return power2( $n / 2) *
power2( $n / 2);
} function multiply( $x , $n )
{ return $x * power2( $n );
} // Driver Code $x = 70; $n = 2;
echo multiply( $x , $n );
// This code is contributed by ajit ?> |
Javascript
<script> // Simple JavaScript program // to compute x * (2^n) // Returns 2 raised to power n function power2(n)
{ if (n == 0)
return 1;
if (n == 1)
return 2;
return power2(n / 2) *
power2(n / 2);
} function multiply( x, n)
{ return x * power2(n);
} // Driver Code let x = 70 let n = 2; document.write( multiply(x, n)); // This code is contributed by mohan </script> |
Output :
280
Time complexity : O(logn)
Auxiliary Space : O(logn)
An efficient solution is to use bitwise leftshift operator. We know 1 << n means 2 raised to power n.
C++
// Efficient C/C++ program to compute x * (2^n) #include <stdio.h> typedef long long int ll;
ll multiply(ll x, ll n) { return x << n;
} // Driven program to check above function int main()
{ ll x = 70, n = 2;
printf ( "%lld" , multiply(x, n));
return 0;
} |
Java
// JAVA Code for Multiplication with a // power of 2 import java.util.*;
class GFG {
static long multiply( long x, long n)
{
return x << n;
}
/* Driver program to test above function */
public static void main(String[] args)
{
long x = 70 , n = 2 ;
System.out.println(multiply(x, n));
}
} //This code is contributed by Arnav Kr. Mandal. |
Python3
# Efficient Python3 code to compute x * (2^n) def multiply( x , n ):
return x << n
# Driven code to check above function x = 70
n = 2
print ( multiply(x, n))
# This code is contributed by "Sharad_Bhardwaj". |
C#
// C# Code for Multiplication with a // power of 2 using System;
class GFG {
static int multiply( int x, int n)
{
return x << n;
}
/* Driver program to test above function */
public static void Main()
{
int x = 70, n = 2;
Console.WriteLine(multiply(x, n));
}
} //This code is contributed by vt_m. |
PHP
<?php // Efficient PHP program to compute x * (2^n) function multiply( $x , $n )
{ return $x << $n ;
} // Driver Code
$x = 70;
$n = 2;
echo multiply( $x , $n );
// This code is contributed by ajit ?> |
Javascript
<script> // Efficient JavaScript program to compute x * (2^n) function multiply(x, n)
{ return x << n;
} // Driver Code
let x = 70;
let n = 2;
document.write(multiply(x, n));
// This code is contributed by mohan </script> |
Output :
280
Time Complexity : O(1)
Auxiliary Space: O(1)