暑期dp46道(44)--HDOJ 1058

来源:互联网 发布:mac代购 编辑:程序博客网 时间:2024/05/06 12:32

题目链接:HDOJ 1058





代码:(注意输出细节

#include<cstdio>#include<cstring>#include<string>#define debug 0#define M(a) memset(a,0,sizeof(a))#define Max(a,b) ((a>b)?a:b)#define REP(o) for(int i=1;i<=o;i++)__int64 ans[5842 + 5];int dir[] = { 2,3,5,7 };int n;void init(){ans[1] = 1;for (int i = 2; i <= 5842; i++){ans[i] = 2000000000 + 5;for (int j = 0; j<4; j++)for (int k = i - 1; k >= 1; k--){if (ans[k] * dir[j] <= ans[i - 1])break;if (ans[k] * dir[j]<ans[i])ans[i] = ans[k] * dir[j];}}}int main(){#if debugfreopen("in.txt", "r", stdin);#endif//debuginit();char str[10];while (~scanf("%d", &n) && n){if (n % 10 == 1 && n % 100 != 11)strcpy(str, "st");elseif (n % 10 == 2 && n % 100 != 12)strcpy(str, "nd");elseif (n % 10 == 3 && n % 100 != 13)strcpy(str, "rd");elsestrcpy(str, "th");printf("The %d%s humble number is %I64d.\n", n, str, ans[n]);}return 0;}

1 0