醜數問題和算法原文鏈接
http://blog.csdn.net/shihui512/article/details/8833568
我的c語言實現
#include<stdio.h>
#define N 2012
int main()
{
double ugly[N];
int index_2 = 0;
int index_3 = 0;
int index_5 = 0;
int i = 0;
ugly[i] = 1;
while(i<N)
{
/*find next ugly*/
double op_min,op_2,op_3,op_5;
op_2 = ugly[index_2]*2;
op_3 = ugly[index_3]*3;
op_5 = ugly[index_5]*5;
op_min = op_2<op_3?op_2:op_3;
op_min = op_min<op_5?op_min:op_5;
/*find next ugly end*/
if(op_min==op_2)
{
index_2++;
}
if(op_min==op_3)
{
index_3++;
}
if(op_min==op_5)
{
index_5++;
}
i++;
ugly[i] = op_min;
}
/*print the result*/
i = 0;
while(i<N)
{
printf("uglyNum_NO.%d %f\n",i+1,ugly[i]);
i++;
}
getchar();
}