从零开始学c语言第六天

2019-03-17  本文已影响0人  别欺负小白了好咩

今天我们继续讲算法题:

水仙花数:

如果一个三位数,它的各个位数上的数字的立方相加以后,等于这个三位数,就称这个数叫水仙花数。

现在,输出所有水仙花数

我们先来分析一下:

我们需要先遍历每一个三位数

然后取得这个数字的各个位数上的数字

将他们的立方相加

然后判断是否等于这个三位数

如果等于就输出这个三位数

如果不等于就不输出然后继续循环判断

接下来我们看代码:

水仙花数代码 水仙花数运行图

正确答案是:153,370,371,407

怎么样,你答对了吗?

我们来解析一下代码:

定义我们就不说了

for循环用来遍历每一位三位数

我们先取得百位数

因为我们定义的类型是int型,所以只要把这个数缩小一百倍,他就只剩下百位上的数字了,比如989这个数,缩小一百倍是9.89,又因为是int型,所以他会变成9,这样就取到了我们的百位数,然后我们将它存到c里面

取得十位数

先将这个数缩小十倍,然后减去原本是百位的数就取得了十位数

具体操作如下:

先将这个数除以十,然后减去这个数这时的十位数,这时的十位数只需要将刚刚取得的百位数乘以十就取得了,然后减去这个数,我们就取得了这个十位数

取得个位数

拿这个三位数减去百位数和十位数就行了

然后再写一个if语句判断他是否满足水仙花数条件,然后就结束了

古典问题:

有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

这个是今天的问题,大家自己思考思考,然后去自己动手敲敲试试哦

上一篇 下一篇

猜你喜欢

热点阅读