zoukankan      html  css  js  c++  java
  • 计算x的n次方(用函数)

    use MathJax to parse formulas

    Description

    问题很简单,求x^n.请编写pow()函数.

    声明如下:

    int pow(int x,int n,int p)

    //pow的功能是实现x^n,最后1个参数p没有用。

    系统会自动在程序的最后加上如下代码:

    int main()
    {
        int x,n;
            scanf("%d %d",&x,&n);
            printf("%d ",pow(x,n,1));
        return 0;
    }

    Input

    x和n 0 < x,n < 2^31-1

    Output

    x^n .最后结果小于 2^31-1

    Sample Input

    2 3

    Sample Output

    8

    Hint

    加上相应的头文件,并实现函数

    int pow(int x,int n,int p)

    O(logn)

    思路:根据2进制来算  比如说2的13次方 13是1101  可以算成2的8次方乘以2的4次方乘以2的1次方

    #include <stdio.h>
    int pow(int x,int n,int p)
    {
        int ans=1;
        if(n==0)
            return 1;
        while(n!=0)
        {
            if(n%2==1)
              ans*=x;
            n/=2;
            x*=x;
        }
        return ans;
    }
    
    
    int main()
    {
        int x,n;
            scanf("%d %d",&x,&n);
            printf("%d
    ",pow(x,n,1));
        return 0;
    }
    
  • 相关阅读:
    hdu 5475(打破固定思维OR线段树)
    hdu 2521 反素数(打表)
    hdu 4540(dp)
    hdu 4535(排列组合之错排公式)
    hdu 4530(数学)
    hdu 4528(搜索好题)
    hdu 4522(图论,构图)
    kalinux 换源
    用python进行wifi密码生成
    hashcat 中文文档
  • 原文地址:https://www.cnblogs.com/zcy19990813/p/9702711.html
Copyright © 2011-2022 走看看