输出1~1000之间的完数,(一个数如果恰好等于它的因子之和,就是完数)帮我看看我错哪了?

为什么24输出了?... 为什么24输出了? 展开
 我来答
百度网友8b58de0
2019-11-21 · TA获得超过945个赞
知道小有建树答主
回答量:1079
采纳率:83%
帮助的人:353万
展开全部
24的因子是:1 2 3 4 6 8 12
你看看它的因子去掉12时,它们的和是等于24,从这里就可以看出代码问题的所在,是因为在循环找最后个因子12前变量z等于24了,这个时候z和m相等,就执行显示部分了,所以就输出了24。
解决方法:
把if(z==m){...}这个部分移动到第二个for语句外面去,放着第二个for(...){..}下面,在第一个for里。
追问
谢谢(*^o^*)
追答
😁
高人仰北谋
2019-11-21 · TA获得超过3404个赞
知道大有可为答主
回答量:2259
采纳率:86%
帮助的人:808万
展开全部
你把 if(z==m) { ........ }
这一段程序代码放到内层循环体之后结果就对了。
另外判断余数为0可以直接用 if(x==0) ,
更合理一些,没必要用浮点数,整型数没有浮点误差。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式