POJ-2247(pair的运用)(Humble Numbers )

来源:互联网 发布:摄影 网站 推荐 知乎 编辑:程序博客网 时间:2024/06/05 06:33
typedef pair<ll, int> pa;int main(){int n;int i;priority_queue<pa, vector<pa>, greater<pa> > p;p.push(make_pair(1, 2));ll d[5845];char s[][10] = {"th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th"};int index = 1;for (i = 1; i <=  5842; ++i) {pair<ll, int> t;t = p.top();p.pop();d[index++] = t.first;switch (t.second) {case 2:p.push(make_pair(t.first * 2, 2));case 3:p.push(make_pair(t.first * 3, 3));case 5:p.push(make_pair(t.first * 5, 5));case 7:p.push(make_pair(t.first * 7, 7));}}while (cin>>n, n) {if (n % 100 == 11 || n % 100 == 12 || n % 100 == 13)printf("The %d%s humble number is %lld.\n", n, "th", d[n]);elseprintf("The %d%s humble number is %lld.\n", n, s[n % 10], d[n]);}}

原创粉丝点击