📜  乘以2的幂

📅  最后修改于: 2021-05-04 17:25:15             🧑  作者: Mango

给定两个数字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)