牛客题霸 [丑数] C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [丑数] C++题解/答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
牛客題霸 [丑數] C++題解/答案
題目描述
把只包含質因子2、3和5的數稱作丑數(Ugly Number)。例如6、8都是丑數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個丑數。求按從小到大的順序的第N個丑數。
題解:
丑數可以分解成2x * 3y * 5z
丑數乘2,3,5就可以得到新的丑數,依次賦值就可
代碼:
class Solution { public:int GetUglyNumber_Solution(int index) {int p2 =0,p3=0,p5=0;if(index<=0)return 0;vector<int> result(index+1);result[0]=1;for(int i =1;i<index;i++){result[i] = min(result[p2]*2,min(result[p3]*3,result[p5]*5));if (result[i]==result[p2]*2) p2++;if (result[i]==result[p3]*3) p3++;if (result[i]==result[p5]*5) p5++;}return result[index-1];} };總結
以上是生活随笔為你收集整理的牛客题霸 [丑数] C++题解/答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客题霸 [二进制中1的个数] C++题
- 下一篇: 挑号网站后台怎么更新()