Go 語言程式向上舍入到 2 的下一個冪。
示例
例如,n = 12 => 前一個 2 的冪次方數是 8。
例如,n = 20 => 前一個 2 的冪次方數是 16。
解決此問題的方法
步驟 1 − 定義一個接受數字 n 的方法。
步驟 2 − 執行 n | (n >> k),其中 k 為 1、2、4、8、16。
步驟 3 − 最後,返回 n - (n >> 1)。
示例
package main
import "fmt"
func PreviousPowOf2(n int) int{
n = n | (n >> 1)
n = n | (n >> 2)
n = n | (n >> 4)
n = n | (n >> 8)
n = n | (n >> 16)
return n - (n >> 1)
}
func main(){
fmt.Printf("Previous round number, power of 2 for %d is %d\n", 20, PreviousPowOf2(20))
fmt.Printf("Previous round number, power of 2 for %d is %d\n", 12, PreviousPowOf2(12))
fmt.Printf("Previous round number, power of 2 for %d is %d\n", 131, PreviousPowOf2(131))
}輸出
Previous round number, power of 2 for 20 is 16 Previous round number, power of 2 for 12 is 8 Previous round number, power of 2 for 131 is 128
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP