您现在的位置是:网站首页> 编程资料编程资料

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

2023-05-26 508人已围观

简介 使用go求幂的几种方法小结_Golang_

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

 /* * 二分幂法 求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("a

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

-六神源码网