丑数问题和算法原文链接
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(); }