0x00:前言
- 假设有两个未知整数x、y,它们相加等于n,相乘等于m,-10000<n,m<10000 .
- 请实现一个函数,输入n、m,如果存在x和y则返回True,不存在x和y则返回False.
- 例如n=5、m=4,则x、y分别为1和4,返回True.
0x01:代码
package main
import (
"fmt"
"math"
)
func checkNumber(n, m int) bool {
res1 := (float64(n)+math.Sqrt(float64(n*n - 4*m)))/2
res2 := (float64(n)-math.Sqrt(float64(n*n - 4*m)))/2
if res1 == float64(int(res1)) || res2 == float64(int(res2)) {
return true
}
return false
}
func main() {
n := 5
m := 4
fmt.Printf("n = %d , m = %d ,CheckStatus: %v",n,m,checkNumber(5,4))
}
《梦境》爱情片高清在线免费观看:https://www.jgz518.com/xingkong/128643.html
看的我热血沸腾啊https://www.237fa.com/
if判断是干嘛用的,不理解
if判断的原因是将求根公式计算出来的结果,强制转换为整数后再转为浮点数,与原结果进行比较,如果相等即为存在整数解
PS:转成整数后再转回浮点数的原因是,在golang中,不同类型的变量是不能进行比较的。