今天我们继续讲算法题:
水仙花数:
如果一个三位数,它的各个位数上的数字的立方相加以后,等于这个三位数,就称这个数叫水仙花数。
现在,输出所有水仙花数
我们先来分析一下:
我们需要先遍历每一个三位数
然后取得这个数字的各个位数上的数字
将他们的立方相加
然后判断是否等于这个三位数
如果等于就输出这个三位数
如果不等于就不输出然后继续循环判断
接下来我们看代码:
正确答案是:153,370,371,407
怎么样,你答对了吗?
我们来解析一下代码:
定义我们就不说了
for循环用来遍历每一位三位数
我们先取得百位数
因为我们定义的类型是int型,所以只要把这个数缩小一百倍,他就只剩下百位上的数字了,比如989这个数,缩小一百倍是9.89,又因为是int型,所以他会变成9,这样就取到了我们的百位数,然后我们将它存到c里面
取得十位数
先将这个数缩小十倍,然后减去原本是百位的数就取得了十位数
具体操作如下:
先将这个数除以十,然后减去这个数这时的十位数,这时的十位数只需要将刚刚取得的百位数乘以十就取得了,然后减去这个数,我们就取得了这个十位数
取得个位数
拿这个三位数减去百位数和十位数就行了
然后再写一个if语句判断他是否满足水仙花数条件,然后就结束了
古典问题:
有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
这个是今天的问题,大家自己思考思考,然后去自己动手敲敲试试哦