直接循环 搞那么复杂干嘛 保留三位小数不就行吗
package main import ( "fmt" "math" ) func main() { var val float64 for { _, err := fmt.Scan(&val) if err != nil { return } var i float64 for i = 0.0; i*i*i <= math.Abs(val); i += 1 { } for i = i - 1; i*i*i <= math.Abs(val); i += 0.1 { } for i = i - 0.1; i*i*i <= math.Abs(val); i += 0.01 { } for i = i - 0.01; i*i*i <= math.Abs(val); i += 0.001 { } i = i - 0.001 fmt.Printf("%.1f\n", i*val/math.Abs(val)) } }