package main import ( "math" "fmt" ) func test(n float64) float64{ var sum, sum2 float64 sum = math.Sqrt(n) // 开平方 //fmt.Println(sum) sum2, _ = math.Modf(sum) // 取整数 //fmt.Println(sum2) // 3 ret := math.Pow(sum2, 2) // 求幂 //fmt.Println(ret) return test(ret) } func main() { /* 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9. */ /* i := -100 fmt.Println(math.Abs(float64(i))) //绝对值 fmt.Println(math.Ceil(5.0)) //向上取整 fmt.Println(math.Floor(5.8)) //向下取整 fmt.Println(math.Mod(11, 3)) //取余数,同11%3 fmt.Println(math.Modf(5.26)) //取整数,取小数 fmt.Println(math.Pow(3, 2)) //x的y次方 fmt.Println(math.Pow10(4)) //10的n次方 fmt.Println(math.Sqrt(8)) //开平方 fmt.Println(math.Cbrt(8)) //开立方 fmt.Println(math.Pi) */ var n, ret float64 n = 12 ret = n - test(n) fmt.Println(ret) }