【题解】【PTA团体程序设计天梯赛】
L1-012 计算指数 (5 分) Go语言|Golang
真的没骗你,这道才是简单题 —— 对任意给定的不超过 10
的正整数n
,要求你输出 2的n次方
。不难吧?
输入格式:
输入在一行中给出一个不超过 10 的正整数 n。
输出格式:
在一行中按照格式 2^n = 计算结果 输出 2 的n次方
的值。
输入样例:
5
结尾无空行
输出样例:
2^5 = 32
结尾无空行
思路:
基础的循环+判断
语句,其实可以写的简单一点的,我只是把他封装的更加广泛而已。
代码如下:
package main
import "fmt"
func main() {
var num int
_,_= fmt.Scan(&num)
fmt.Printf("2^%d = %d",num,powerf(2, num))
}
func powerf(x int, n int) int {
ans := 1
for n != 0 {
if n%2 == 1 {
ans *= x
}
x *= x // 这里是直接双倍的 , 可以打印出x和n的值,自己看看
n /= 2 // 因为是双倍的,所以只需要进行幂次的一半次数就行了。
}
return ans
}