poj 1338 Ugly Numbers

#include <stdio.h>

int min(int a,int b,int c)
{
	if(a<=b&&a<=c)return a;
	if(b<=a&&b<=c)return b;
	if(c<=a&&c<=b)return c;
}

int main()
{
	int n,i,j=1,k=1,l=1,ans[1505];
	ans[1]=1;
	for (i=2;i<=1500;i++)
	{
		ans[i]=min(ans[j]*2,ans[k]*3,ans[l]*5);
		if(ans[i]==ans[j]*2)j++;
		if(ans[i]==ans[k]*3)k++;
		if(ans[i]==ans[l]*5)l++;
	}
	while (scanf("%d",&n)!=EOF&&n)
	{
		printf("%d\n",ans[n]);
	}
	return 0;
}
posted @ 2011-10-20 22:00  104_gogo  阅读(167)  评论(0编辑  收藏  举报