为什么输出结果会有误呀??

img

img

应该是样判断 if (Math.sqrt(li) == (int)Math.sqrt(li))
浮点数计算可能有误差,不行这样试试
if (Math.abs(Math.sqrt(li) - Math.round(ath.sqrt(li))) < 0.000001)
如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮

用long型不够啊,因为N允许到10000,那么10000的三次方用long型存储会溢出的,肯定不行。改成long long类型