其实这个小题目也很简单,本来也没什么可说的,只是总结一下思路。
先来看题目,题目要求判读一个数字是否是完数。首先得知道完数是啥吧。简单来说,一个自然数的真因子之和等于它本身。比如6=1+2+3.真因子概念注意一下即可。
对于这中判断类的问题,最重要的就是找到判读条件,至于存储格式,打印格式是后来要考虑的细节问题,刚开始找思路的时候不要太在意(如果你很牛逼啦,那也无所谓,因为你可以一眼看穿这个问题,连各种实现细节都考虑的很清楚),大部分人还是要靠改代码来提高的。
上面已经说道,根据判断条件来判读是否是完数。那么看看条件是啥。首先是一个自然数 ,这个好解决,整形变量基本可以解决了,控制一下输出范围即可。
其次是判段它的真因子之和。一个必然的事实摆在我们面前,一个数字的真因子可能不止一个,但是要求我们比较真因子之和是否等于数字本身,解决??产生了两个问题,如何存储真因子?如何求和于数字本身就行比较?把这两个问题解决了本题也就没用任何难点了。
既然真因子个数可能不唯一,那么用啥来存储呢?想了想,只有数组最合适了吧,总不能声并且数组求求和很简单嘛