• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    使用go求幂的几种方法小结

    我就废话不多说了,大家还是直接看代码吧~

    /*
    *  二分幂法 求x^n
     */
    // 求整数幂
    package main
    import (
      "fmt"
      "math"
    )
    func main() {
      var x float64
      var n int
      fmt.Scanf("%f%d", x, n)
      fmt.Println(powerf(x, n))
      fmt.Println(powerf2(x, n))
      fmt.Println(powerf3(x, n))
      fmt.Println(math.Pow(x, float64(n)))
    }
    func powerf(x float64, n int) float64 {
      ans := 1.0
      for n != 0 {
        if n%2 == 1 {
          ans *= x
        }
        x *= x
        n /= 2
      }
      return ans
    }
    /*
    *  递归法 求x^n
     */
    func powerf2(x float64, n int) float64 {
      if n == 0 {
        return 1
      } else {
        return x * powerf2(x, n-1)
      }
    }
    /*
    *  循环法 求x^n
     */
    func powerf3(x float64, n int) float64 {
      ans := 1.0
      for n != 0 {
        ans *= x
        n--
      }
      return ans
    }
    

    测试案例:

    补充:Go常见运算操作

    1、算术运算符

    // 运算符 描述 实例

    // + 相加 A + B 输出结果 30

    // - 相减 A - B 输出结果 -10

    // * 相乘 A * B 输出结果 200

    // / 相除 B / A 输出结果 2

    // % 求余 B % A 输出结果 0

    // ++ 自增 A++ 输出结果 11

    // -- 自减 A-- 输出结果 9

    2、关系运算符

    // 运算符 描述 实例

    // == 检查两个值是否相等,如果相等返回 True 否则返回 False。 (A == B) 为 False

    // != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 (A != B) 为 True

    // > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 (A > B) 为 False

    // 检查左边值是否小于右边值,如果是返回 True 否则返回 False。 (A B) 为 True

    // >= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 (A >= B) 为 False

    // = 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。 (A = B) 为 True

    3、逻辑运算符

    // 运算符 描述 实例

    // 逻辑 AND 运算符。 如果两边的操作数都是 True,则条件 True,否则为 False。 (A B) 为 False

    // || 逻辑 OR 运算符。 如果两边的操作数有一个 True,则条件 True,否则为 False。 (A || B) 为 True

    // ! 逻辑 NOT 运算符。 如果条件为 True,则逻辑 NOT 条件 False,否则为 True。 !(A B) 为 True

    4、赋值运算符

    // i++ 自增

    // i-- 自减

    // i+=j 等价于 i = i + j

    5、代码

    package main
    import "fmt"
    func main() {
    var a,b = 10,11
    fmt.Printf("a+b=%d\n",a+b)
    fmt.Printf("a-b=%d\n",a-b)
    fmt.Printf("a*b=%d\n",a*b)
    fmt.Printf("a/b=%d\n",a/b)
    fmt.Printf("a求余b=%d\n",a%b)
    var c,d=10,9
    println("a>b的结果",c>d)
    println("a==b的结果",c==d)
    println("ab的结果",cd)
    println("a!=b的结果",c!=d)
    var e,f = true,false
    println(ef)
    println(e||f)
    println(!f)
    var i,j = 1,0
    i++
    fmt.Println(i)
    i--
    fmt.Println(i)
    j += i // 等价于 j = j+i
    fmt.Println(j)
    i++
    j *= i
    fmt.Println(j)
    }
    

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • 浅谈Go语言中的次方用法
    • Golang 运算符及位运算详解
    • golang指数运算操作
    • golang切片反序实例
    • Go语言实现牛顿法求平方根函数的案例
    上一篇:浅谈Go语言中的次方用法
    下一篇:Go语言实现牛顿法求平方根函数的案例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    使用go求幂的几种方法小结 使用,求幂,的,几种,方法,