需求是判断p是否满足p=a^2+b^2+c^2packagemainimport("fmt""math")funcabcasync(pint)bool{na:=int(math.Sqrt(float64(p)))+2channel:=make(chanbool)fora:=0;aforb:=0;b gofunc(){ forc:=0;cifa*a+b*b+c*c==p{ channel<-true}}}()}}return<-channel}funcmain(){//d:=abcasync(41)d:=abcasync(23)fmt.Println(d)}这里要求,一旦满足if条件,就退出程序,以避免浪费计算时间,否则就要遍历所有的情况。那么,如何判断所有的协程都执行完了呢?会报错,请教如何解决?
相关分类