首页 > 其他 > 详细

SCU 1029 Humble Numbers (打表处理)

时间:2017-02-19 15:32:35      阅读:195      评论:0      收藏:0      [点我收藏+]

题目链接

题意:素因子中只有2 3 5 7的数称为谦逊的数,1也是谦逊的数,题目中已经给出了前20个谦逊的数。给定数字n,按格式输出第n个谦逊的数。

题解:打表即可,注意打表的技巧就行了。

ps:这道题和去年多校做过的一道题很像,那道题是输出大于等于n的第一个数,附上链接:传送门

#include <cstdio>
#include <iostream>
using namespace std;
#define N 6005
typedef long long ll;
ll data[N];
int cnt,n;
void get()
{
    cnt=2;
    data[1]=1;
    int p2=1,p3=1,p5=1,p7=1;
    for(int i=2; i<=6000; i++)
    {
        data[i]=min(min(data[p2]*2,data[p3]*3),min(data[p5]*5,data[p7]*7));
        if(data[i]==data[p2]*2) p2++;
        if(data[i]==data[p3]*3) p3++;
        if(data[i]==data[p5]*5) p5++;
        if(data[i]==data[p7]*7) p7++;
    }
}
int main()
{
    get();
    while(scanf("%d",&n)&&n)
    {
        printf("The %d",n);
        if(n%100!=11&&n%10==1) printf("st");
        else if(n%100!=12&&n%10==2) printf("nd");
        else if(n%100!=13&&n%10==3) printf("rd");
        else printf("th");
        printf(" humble number is ");
        printf("%lld.\n",data[n]);
    }
    return 0;
}

 

SCU 1029 Humble Numbers (打表处理)

原文:http://www.cnblogs.com/Ritchie/p/6415770.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!