亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang 運算符 % 未在 float64 上定義

golang 運算符 % 未在 float64 上定義

Go
守候你守候我 2022-06-13 16:35:54
有一個 leetcode 測試326。使用 java 的數學方法的三的冪:public class Solution {    public boolean isPowerOfThree(int n) {        return (Math.log(n) / Math.log(3) + epsilon) % 1 <= 2 * epsilon;    }}當我打算將此解決方案轉換為 Golang Likeimport "math"func isPowerOfThree(n int) bool {    return (math.Log10(float64(n)) / math.Log10(3)) % 1 == 0.0 }然后出現編譯錯誤,例如Line 4: Char 53: invalid operation: math.Log10(float64(n)) / math.Log10(3) % 1 (operator % not defined on float64) (solution.go)我檢查了數學包,但沒有像運算符這樣受支持的函數,有沒有像Golang這樣的%有效運算符?%多謝 :)
查看完整描述

1 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

TLDR: _, frac := math.Modf(f)


您可以func Mod(x, y float64) float64在math包裝中使用。


package main


import (

    "math"

)


func isPowerOfThree(n int) bool {

    return math.Mod((math.Log10(float64(n)) / math.Log10(3)), 1.0) == 0.0 

}

你也可以使用func Modf(f float64) (int float64, frac float64).


package main


import (

    "math"

)


func isPowerOfThree(n int) bool {

    _, frac := math.Modf((math.Log10(float64(n)) / math.Log10(3)))

    return frac == 0.0

}


查看完整回答
反對 回復 2022-06-13
  • 1 回答
  • 0 關注
  • 337 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號