码迷,mamicode.com
首页 > 其他好文 > 详细

hdu_1058

时间:2015-02-17 02:02:16      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

末尾是1 但不是11的 st

末尾是2 但不是12的 nd

末尾是3 但不是13的 rd

其他 th

打表过程:

  dp[x]代表第x个humble number

  dp中所有元素都是从1开始,*2 *3 *5 *7得到

// hdu 1058
// dp 打表
// Feb.16 2015
#include <cstdio>
#include <algorithm>

int dp[5900], n, n2, n3, n5, n7;

void pre_do()
{
    dp[1] = 1;
    n2 = n3 = n5 = n7 = 1;
    for(int i = 2; i <= 5900; ++i){
        dp[i] = std::min(dp[n2]*2, std::min(dp[n3]*3, std::min(dp[n5]*5, dp[n7]*7) ));
        if(dp[i] == dp[n2]*2) ++n2;
        if(dp[i] == dp[n3]*3) ++n3;
        if(dp[i] == dp[n5]*5) ++n5;
        if(dp[i] == dp[n7]*7) ++n7;
    }
}

int main(int argc, char const *argv[])
{
    // freopen("in", "r", stdin);
    pre_do();
    while(scanf("%d",&n) && n)
    {
        printf("The ");
        if(n%10==1&&n%100!=11)printf("%dst",n);
        else if(n%10==2&&n%100!=12)printf("%dnd",n);
        else if(n%10==3&&n%100!=13)printf("%drd",n);
        else printf("%dth",n);
        printf(" humble number is %d.\n",dp[n]);
    }
    return 0;
}

 

hdu_1058

标签:

原文地址:http://www.cnblogs.com/takeoffyoung/p/4294762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!