00:00
好,接下来我们来看第三个练习啊,我们水仙花束这个练习啊,我们来,呃,新建一个文件来说一下它扣里边我们来零八啊练习。这个两个练习我们专门来说一下。刚才这个题呢,我们已经读过了啊,我就不再去分析了,那这个题呢,我们直接来做,那首先我们要做这个呢,我们先来第一件事,先来获取,获取我们这个1000以内的三位数啊,获取我们这个1000以内的三位数,那我直接先初始一个值I等于一个这个一百一百,因为是100是我们最小的三位数,然后Y啊,我们的条件是I小于1000啊,I的值是要比1000小的啊,比1000小的啊,然后呢,这块我们直接写一个啊,I小于1000,然后我们这直接print一下I,诶最后不要忘了对I进行自增,哎,I加等于一,直接保存我们这一执行。
01:12
哎,那这里边儿我们来看,这时候I的值我们来看啊,最小是从100开始,一直,然后到了什么呀?哎,到了这个。999对吧,哎,999,那这个呢,我们现在这个I就是我们所有的三位数啊,所有三位数,那但是我们这不能直接打印它呀,对吧,因为我们需要干嘛呀,我们需要先判断判断什么呢?哎,判断我们这个哎是否是什么呀,诶是否是水仙花数,如果是水仙花束我们才打印,如果不是我们是不用打印啊,所以打印这个我们先住了,我先不打印,我们这块需要判断哎是否是水仙花数,那怎么判断它是否是水仙花数啊,哎,那我们现在假如说啊,它现在个十百是吧,三个数,哎,三个数我们假设百位,我们设成A,哎,个位是,诶咱们假设。
02:04
哎,我们这什么呀,哎,百位数I的百位数,百位数是A啊,然后我们这个个位数,哎,个位数是B,然后哎,这个十位数是B。然后还有什么呢?哎,还有我们这个个位数,哎,个位数是C啊,我们这有三个数ABC,那现在呢,我们要求,哎,我们要求它是不是一个水仙花数,那怎么办呀?那其实就是来干嘛呀?哎,就是来判断A的三次方加上B的三次方加上C的三次方,也就这三个数的立方和是不是等于什么呀,等于哎,如果等于是不是证明它是一个水银花数啊,哎,但是现在问题是什么呀?问题是这个ABC我们是不是都没有啊?所以这里我们要分别求出这个百位数,十位数,还有个位数,那我们一个个来求,我们先求什么呢?哎,求我们这个I的一个百位数。
03:11
啊,百位数,那问题来了,百位数我们刚才设了百位数是A,那这个数我们要怎么求啊?哎,那非常简单,其实比如说是100,它的百位数是不是就是一啊,哎,它是200,百位数是不是就是二啊,我们会发现百位数怎么求啊,我直接让这个数去除以100,最后是不是就是百位数?哎,我100除以一百百就是一,200除以100是不是就是二啊,300除以100是不是就三呀?哎,我让这个数除以100,得到就是三位数,这百位数,但是注意我们这是要用整除,还是用我们这个正常这个除啊,哎,这里边当然是要整除啊,很明显,如果是101 101,我们除以100,结果是什么呀?哎,结果是1.01,但是这点零一对于我们来说有没有意义啊,哎,没有意义,我们要的只是谁,只是这个整数位啊,整数位,所以在这我们应该用的是什么呀?是整除啊,所以怎么办?应该用I,哎,整除以谁呀,整除以100,这个就是百位数。
04:11
我们来看一下,直接打印一下这个这一执行应该是十十个一是吧,十个20,哎十个30个四十五十六啊,我们来看一下,哎,就是什么呀?哎E。哎,应也不是十个,是100个亿,100个二,100个三对吧,哎,100个啊,因为1011直到一百一百九十九嘛,对吧,从一百一到百,199应该是100个亿啊,100个亿,好,那现在百位数有了,接下来我们来求什么呢?求I的一个十位数,十位数它怎么求啊,百位数有了,那十位数怎么求啊,十位数稍微的麻烦一点啊,十位数麻一点,那十位数的同学说,老师你百位数除以100,你十位数除以十不就完了吗?哎,十除以十那不行,为什么不行呢?因为我假如说是120,我除以十,哎,除以十是多少,除以十是一个。
05:06
12啊,除以十是一个12,但是12它是不是我们这个。十位数啊,不是二才是这一,它不是对吧?哎,一不是,所以这个东西我们要怎么算啊,我们要怎么算,那我呢也可以这么算,我也可以让它干嘛呢?让I先和十去整除啊,让I先和十去整除,这样我们是不是等于把个位数字去掉了,哎,个数就比如说之前是151完了,除以十是不是等于15啊,整除就没了吗?对吧,就变成了15,那这个时候就把个位数去掉了,那现在我们是要获取到这五啊,这五我怎么获取,这五怎么获取,那现在就等于是一个两位数,一个两位数我要获取它的个位数字怎么办?哎怎么办?那我可以直接去让它和谁的和十去取模,比如说15,诶除以十得几啊,15除以十得哎得一余几啊,哎,余五这五是不是正好是个位数字,哎,那再来看我们来一个37除以十得几啊?哎,得三余几余?
06:13
七是不是正好是个位数,哎,正好个位数,所以在这儿你让它整除以后,你在干嘛呢?你再让他和我们的这个谁呀,哎和十再取一个模啊,取一个模,现在整除十,这样它就剩两位数了,再取一个模就剩什么呀,就剩一个个位数了,我们来看效果啊,来一个B,哎,等于它,那我们这个B的值应该是一个从零啊,00000啊呃,十个零,十个十个一这样的啊,我们来看一下直接执行。嗯。往上挪,我们来看000,这是101,一百一百零一,一百零二一百零三对吧,这是110 111 112,是不是十位数就求求出来了,哎,就求出来啊,非常简单,当然这个算法也不是就这一种,还有别的算法,我们说一下还可以怎么求呢?哎,那现在我们已经有百位数了,对吧?已经有百位数了,那我直接干嘛呢?我来一个B等于I减去什么呢?I减去一个A乘以100啊,A乘以100,那注意A是我们这个数字的百位数,如果A是一,一乘100就是100,如果A是二乘以100就是200,那这个效果就什么呀?哎,就是假如说2A是211,那我A是不是就是二,二乘以100等于什么呀?等于200,那减去200是不是就剩一个11啊,哎,这样就等于把百位数去了,就剩一个十位和个位,十位和个位我们再让它干嘛呀?哎,去整除我们这个十。
07:42
哎,整除十,那这样剩下的就是那个什么呀,十位数字啊,十位数字咱们也可以看一眼,一直行,其实效果是一样的啊,效果是一样的,那这种算法呢,有很多种啊,很多种我就不演示了,如果你没看明白,待会自己稍微的推一下,并不难啊,并不难,两种方式都行啊,两种方式都行好,那这个是我们百位数字也求,哎,十位数字也求出来了,那接下来我们来求什么呀?哎,求我们这个I的一个个位数字,个位数字咋求啊?哎,其实刚才我们演示过了,我们会发现一个数直接除以十,它的那个余数就是它的个位啊,一个数直接除以十,余数就是个位,所以求个位非常简单,C直接等于一个I摩也十啊,I摩以十,这就剩下的个位数字,为什么呀?因为十位能被整除,不能整除的一定是个位是吧?比如说123除以十等于几啊,等于12余三,这个三是不是就是个位数字哎,所以一个数模以十,最后剩下的就是它的这个个位数啊。
08:43
尾数好,那我这儿求完了,我们再来看一下这个C,这个C应该就是012345689啊,0123489不断重复,哎,0123489啊,就求出来了,那这个时候我可以把这几个数都打印一下啊,我先打印一个A,然后打印一个A,然后打印一个B,然后打印一个C,我们来看看对不对啊,这一执行。
09:06
它稍微有点慢是吧,因为这个数字稍微的有一点点多,其实主要是应该是subli,它的执行起来比较慢一点,我们来看一下,诶,你看100就是得到100101就是101啊,然后随便找一个253就是得到253,这样我们ABC现在是不是就是这个个百十位的数字了,哎个百这个这个百十个位数字啊,然后下边我们是不是就可以判断了,哎我们来做一个判断,判断我们这个哎是否是水仙花数怎么判断呀?哎,非常的简单,直接来一个if什么呀,哎,我们这个A的三次方加上我们这个B的三次方,哎,再加上我们个C的三次方,哎,也就说这三个数的立方和,如果你还等等于,如果你还和A相等,那这样是不是证明你是水源函数啊,是水源话数在这儿我就做了一个输出啊,是水源数话数在这我就做一个输出。
10:07
这样的效果我们来看啊,这儿一直行走一个,诶,我们就得出来这么四个数,153 370 371,还有一个407,这三,这四个数就是我们这个三位数当中的这个水仙花数,就这么简单啊,就这么简单,那这里边其实呢,呃,主要就是你如何把这个数字的这个位,十位,百位给它取出来,如果取出来了,剩下的都非常非常的简单,这几个小的算法可以自己去看一下,如果不明白,自己再去写一写,诶算一算,其实呢,很好理解啊,很好理解,好这个是我们说的一个水仙花数的一个练习,我们还是先停一下。
我来说两句