#include?<stdlib.h>
int?min(int?a,int?b,int?c);
int?main()
{
int?n;
scanf("%d",&n);
int?*a?=?(int?*)malloc(n*sizeof(int));
int?temp;
int?index2?=?0;
int?index3?=?0;
int?index5?=?0;
int?index?=?1;
a[0]?=?1;
while(index<n)
{
temp?=?min(a[index2]*2,a[index3]*3,a[index5]*5);
if(temp?==?a[index2]*2)
index2++;
if(temp?==?a[index3]*3)
index3++;
if(temp?==?a[index5]*5)
index5++;
a[index++]?=?temp;
}
printf("a[%d]?=?%d\n",index-1,a[index-1]);
return?0;
}
int?min(int?a,int?b,int?c)
{
a?=?a<b?a:b;
return?(a<c?a:c);
}
這個實際上是醜數問題,程序我給妳貼這兒了。這種算法是目前c裏邊求醜數效率最高的。
希望妳能理解程序的精妙之處,望采納!!!