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

作者:autuan_liu 时间:2023-09-23 05:07:45 

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


/*
*  二分幂法 求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求幂的几种方法小结

补充: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<b的结果",c<d)
println("a!=b的结果",c!=d)
var e,f = true,false
println(e&&f)
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)
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持

来源:https://blog.csdn.net/autuan_liu/article/details/69372239

标签:go,求幂
0
投稿

猜你喜欢

  • pyqt5 设置窗体透明控件不透明的操作

    2022-04-18 09:16:16
  • Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程

    2021-08-19 13:13:13
  • Python安装Flask环境及简单应用示例

    2021-09-19 10:07:24
  • 10个ASP网页制作技巧

    2007-09-24 13:12:00
  • python自动化生成IOS的图标

    2021-04-26 19:16:34
  • golang 两个go程轮流打印一个切片的实现

    2024-02-12 09:11:29
  • python加速器numba使用详解

    2022-02-27 15:24:22
  • python批量复制图片到另一个文件夹

    2021-04-30 09:36:50
  • python机器学习案例教程——K最近邻算法的实现

    2021-12-01 14:36:51
  • 详细解读Python的web.py框架下的application.py模块

    2021-06-24 22:28:47
  • Vue数据劫持详情介绍

    2024-05-13 09:38:18
  • javascript实现圣旨卷轴展开效果(代码分享)

    2024-04-10 11:03:29
  • Python实现将mp3音频格式转换为wav格式

    2023-09-18 15:50:02
  • 从django的中间件直接返回请求的方法

    2022-02-04 23:32:23
  • vuejs使用axios异步访问时用get和post的实例讲解

    2024-05-02 16:56:49
  • python 爬取豆瓣网页的示例

    2021-06-25 22:50:00
  • Flask项目中实现短信验证码和邮箱验证码功能

    2022-02-24 00:12:58
  • 在图片上显示左右箭头类似翻页的代码

    2024-04-19 09:48:20
  • 详解python中文编码问题

    2023-10-17 12:09:08
  • Python调用飞书发送消息的示例

    2022-10-20 14:21:23
  • asp之家 网络编程 m.aspxhome.com