额 不是很清楚题主说的看不懂是什么意思。。。
是指的代码看不懂还是鱼哥传递的思想不是很懂。。。
我这里就都说一下叭
先说代码上:
1-3行:
就是一个for循环,i从100一直遍历到999
而 i 的 每一次遍历 都会在这个循环中 执行如下操作
一:将标志位sum设置为0
#实现代码:02
二:将 i 的值 传递给temp
#实现代码:03
三:进入内循环(就是在for循环中,再进入一个循环while)
#实现代码:04
接下来就是while循环实现的功能:
一:将temp(也就是我们现在判断的数字)的最后一位三次方 并且加到sum上
#实现代码:05
二:将temp减掉个位数,并且降低一位(例如 如果temp原来是321,那么就变成32,如果是32,就变成3,如果是3,那就变成0)
#实现代码:06
当while循环结束的时候 (# while循环的判断条件是temp ,也就是说 while循环结束 temp就等于0;而我们不能知道,当temp为0,那么temp的每一位的三次方 也就成功的加到了sum中)
我们要进入一个条件判断,也就是水仙花的条件判断
#实现代码:06、、07、08
******************************************************
一下为思路解释
就是首先我们要对100到999的每一个数进行遍历,也就是一次取出每一个数
每当我们取出一个数的时候,对于这一个数来说,我们要进行如下除了:
1、求它的各个数字立方和
2、判断各个数字的立方和是否等于它本身
要想是想 1 那么我们就必须对这个数字进行一下处理
一、把第三位的立方,加到sum中
二、把第二位的立方,加到sum中
三、把第一位的立方,加到sum中
而要完成这三步,我们又有如下思路:
每次,我们都是把最后一位的立方加到sum中(利用除10取余实现)
然后,我们再把这个数的最后一位减去,并且把它的第二位变成最后一位(利用底除实现,你看 每次我们用地板除,不就是把这个数除以10,并且只取整数部分嘛,那么原来的各位就变成的小数部分被抛弃,原来的十位就变成各位,百位变十位了)
而完成 2 就不用多说了 用if条件判断即可。