给定两个数字x和n,我们需要将x与2 n相乘
例子 :
Input : x = 25, n = 3
Output : 200
25 multiplied by 2 raised to power 3
is 200.
Input : x = 70, n = 2
Output : 280
一个简单的解决方案是计算2的n次幂,然后乘以x。
C++
// Simple C/C++ program
// to compute x * (2^n)
#include
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<
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
Javascript
C++
// Efficient C/C++ program to compute x * (2^n)
#include
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
Javascript
输出 :
280
时间复杂度: O(Log n)
一个有效的解决方案是使用按位左移运算符。我们知道1 << n意味着2升为n的幂。
C++
// Efficient C/C++ program to compute x * (2^n)
#include
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
Java脚本
输出 :
280
时间复杂度:O(1)