前言:
如今大家对“判断整数n是否为完数”大致比较注意,朋友们都需要知道一些“判断整数n是否为完数”的相关内容。那么小编也在网摘上搜集了一些对于“判断整数n是否为完数””的相关资讯,希望兄弟们能喜欢,咱们一起来学习一下吧!看一下这二百六十四题,二百六十四题其实就是要看到要用的其实就是一种dp的运算方法。怎么样去做?相当于是给你一个整数n求,让你求出n,n个n个丑数。丑数就是它的因子就是只能是二三五,这样子的东西。
怎么样去做?其实就是需要用到比如之前已经生成出来的最小的丑数,然后再用丑数去生成下一个丑数。怎么样去生成?相当于是用之前已经生成过的东西来帮忙去生成下一个,这其实就是dp的运算过程。
看一下这个东西怎么做?比如先把所有的东西就置入置为一,就是nance等于一乘以这么多。现在如果n等于一,直接尾乘以一就行了,这是一个边界条件。
然后需要一个v二、v三、v五,这样的东西是它的index,它音带子最初都是零,都在零上面。然后就是four音brand,就是n减一到n减一为止。因为是从一这个地方已经开始已经在这个里面了,所以应该是从后面开始去做。
就是从一到n加一到n减一,其实应该是算这样的情况。这样可以一到n来算,其实应该是这样子来做。如果等于一个最小值,也就是nums的v二乘以二和numsv三乘以三,numsv五五乘以五,这里面找了一个最小的。
找到一个最小的以后就知道这个,就可以判定最小的就放到这个里面了,相当于是最放到这里面了。放到里面了以后怎么样去做?比如d,这个是不是二乘以二,就是可以二乘以这个v二,v二就是应该是一副numsi等于numsv二,那v二是不是index就要加一,numsi等于v,numsv三,那v三的这个v三就要加,因为它是算已经用过一次了对不对?
ifnoms,i等于nomsv五,那就是v五就要加等于一。因此想一下,现在用到用三,能这个位置上面一定要生成一个比二乘以二,二乘以二应该是等于四,是不是?一乘以三应该是比二乘以二要小,所以应该拿到的就是这个,而不应该是这个东西,所以应该是拿到的是这个东西。
当是三乘以二的时候是六,但是一乘以五是更小的,所以应该是拿到的是这个东西,所以用这种方法来计算,总会计算出来这个东西里面最小的这个是二或三或五的倍数,这样算出来了以后,到最后一个算完了以后整个过程就是on的运算方法,时间复杂度。
这个时候returndumps的最后一个,一定是所需要的结果,因为不能重复,不能下一次要算又算个二出来,不可以,就是像一秒二已经加一了,下一句用二来算,比如再乘一个,在一个数字来乘,乘以二等于四了,就不能够再算出来等于这个东西了。
因为是这样的,但一采用了用二算出来的东西,v2就应该加一了,如果采用了一个用三来算出来东西,v3就应该加一了,就应该是以这种方式来做,所以整个o n 的方式去实现它就可以了。
看一下是什么地方,v 五加一,从一,这边应该是从零到n加一,其实是一样的,少算一个零到n减一,到n减一的时候,n减一,这个i就是最后一个,这里算出来是十二是输出的十一,这里有问题,nums应该是乘以的,其实不需要这样子,其实不需要乘以n,第一个是一,第二个只要往里面去一,因为里面已经有个一了,只要加n减一个就可以了,加n减一个就行了,因为这个里面的东西跟n没有任何关联关系,只需要append就可以了,就是点append,命最小的值就行了。
想一下,这里是pen的,这个里面最小的这个纸,b二,b二加,这里等于它乘以二,sorry,这里有一个乘以三,这边也是乘以五,这个数字如果是通过它乘以五来算出来,v五就要加一,等于同于乘三出来,就应该用它来加一就可以。
i看一下,v五乘以五,v三乘以三,v二乘以二,这个number是等于v二乘以二算出来的,就是到安检一个里面命最小的那个,只要算这个东西等于i所算出来的这个东西是从零开,应该从一到n,一到n,算出来这个东西最后一个应该就是这个也没关系,其实从一到n算出来的东西,因为不会操作去修改以前的数字,所以这个就是用这样的方法,这是一个dp的一种运算方法来算,这是一个动态规划的一种方法来做的。
后面的所有数字都是根据前面的v二所在对计算出来的东西或者v三所计算出来的东西或者v五计算出来的东西来去计算的,找到这三个值最小的里面的东西来去判定,下一个应该是v二的指针应该往前进一位还是v三还是v五。
这道题大概就是这样,这道题比较重要,我觉得是对于没有动态规划这方面编程思维能力的人比较弱的其实是可以多用来做一些练习的。
今天分享就先到这里。
标签: #判断整数n是否为完数 #判断n是否是完数