POJ 2247 Humble Numbers
2012-12-05 17:09
399 查看
做了好多遍,竟然做到一半不会了,郁闷!
#include<stdio.h>
#include<string.h>
int min(int a,int b)
{
return a>b?b:a;
}
int main()
{
int num[6000],s,i,j,k,l,n;
num[1]=1;i=j=k=l=1;
for(s=2;s<=5850;s++)
{
num[s]=min(num[i]*2,min(num[j]*3,min(num[k]*5,num[l]*7)));
if(num[s]==num[i]*2)
i++;
if(num[s]==num[j]*3)
j++;
if(num[s]==num[k]*5)
k++;
if(num[s]==num[l]*7)
l++;
}
while(scanf("%d",&n),n!=0)
{
if(n==1&&n0!=11)
printf("The %dst humble number is %d.\n",n,num
);
else if(n==2&&n0!=12)
printf("The %dnd humble number is %d.\n",n,num
);
else if(n==3&&n0!=13)
printf("The %drd humble number is %d.\n",n,num
);
else printf("The %dth humble number is %d.\n",n,num
);
}
return 0;
}
#include<stdio.h>
#include<string.h>
int min(int a,int b)
{
return a>b?b:a;
}
int main()
{
int num[6000],s,i,j,k,l,n;
num[1]=1;i=j=k=l=1;
for(s=2;s<=5850;s++)
{
num[s]=min(num[i]*2,min(num[j]*3,min(num[k]*5,num[l]*7)));
if(num[s]==num[i]*2)
i++;
if(num[s]==num[j]*3)
j++;
if(num[s]==num[k]*5)
k++;
if(num[s]==num[l]*7)
l++;
}
while(scanf("%d",&n),n!=0)
{
if(n==1&&n0!=11)
printf("The %dst humble number is %d.\n",n,num
);
else if(n==2&&n0!=12)
printf("The %dnd humble number is %d.\n",n,num
);
else if(n==3&&n0!=13)
printf("The %drd humble number is %d.\n",n,num
);
else printf("The %dth humble number is %d.\n",n,num
);
}
return 0;
}
相关文章推荐
- HDU 1058 Humble Numbers
- POJ 2247 && HDU 1058 Humble Numbers(数论)
- POj 3292 Semi-prime H-numbers
- poj 数论 Semi-prime H-numbers
- POJ 1504 Adding Reversed Numbers…
- 一类计算问题小结poj&hoj Set Definition ,Humble Numbers ,Ugly Numbers 因子构造法
- ACM: dp题 poj 1276 go on 动态规…
- ACM: 最小费用最大流 图论题 poj 2…
- ACM: 数论题 toj3343 同 poj 1061
- ACM: 博弈题 poj 1067
- poj 3128 Leonardo's Notebook
- ACM:动态规划题 poj 1015
- ACM: 线段树 poj 2886 约瑟夫问题
- ACM: 动态规划题 poj 1925
- ACM: 动态规划题 poj 3093 0-1背包
- 由poj 1067引发的——取石子游…
- ZZULI_SummerPractice(3) POJ 3984…
- POJ 3625 Building Roads
- ZOJ 1066(POJ 1099) Square Ice(…
- POJ&nbsp;2479&nbsp;Maximum&nbsp;sum