acm模板之丑数

来源:互联网 发布:淘宝卖家客服怎么登录 编辑:程序博客网 时间:2024/05/12 16:11

题目大意为:一个数的质因子只有2,3,5,7的数被称为丑数,写一个程序输出第N大的丑数。输入为N,输出为第N大的丑数。


下面为代码:

#include<iostream>

#include <cstdio>

#include <algorithm>

#include <cstring>

#include <cmath>


using namespace std;


int main()

{

int n;        /*要求的第n大丑数*/

int i;

int num[6000];       /*用于存放每个丑数,由小到大排列*/

int  two,three,five,seven;   /*表示丑数的质因子有多少*/

/*一开始质因子个数为1*/

two = 1;

three = 1;

five = 1;

seven = 1;

num[0] = 0;

num[1] = 1;


for(i = 2;i <= 5842;i++)

{

num[i] = min(min(num[two] * 2,num[three] * 3),min(num[five] * 5,num[seven]  * 7));

/*这里特别注意,一定四个没有else的IF语句*/

if(num[i] == num[two]  *  2)

two++;

if(num[i] == num[three] * 3)

three++;

if(num[i] == num[five] * 5)

five++;

if((num[i] == num[seven] * 7)

seven++;

}

printf("%d\n",num[n]);


return 0;

}

0 0
原创粉丝点击