POJ 2247

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<vector>
 4 #include<string>
 5 #include<map>
 6 using namespace std;
 7 int min_4(int a,int b,int c,int d)
 8 {
 9     a=a<b?a:b;
10     a=a<c?a:c;
11     a=a<d?a:d;
12     return a;
13 }
14 string work(int x)
15 {
16     string s="th";
17     const string ss[3]={"st","nd","rd"};
18     int t=x%10;
19     if(t==1&&x%100!=11)s=ss[0];
20     else if(t==2&&x%100!=12)s=ss[1];
21     else if(t==3&&x%100!=13)s=ss[2];
22     return s;
23 }
24 int main()
25 {
26     //freopen("acm.acm","r",stdin);
27     int n,len,i,t,m;
28     len=1;
29     int a[6000],x2=0,x3=0,x5=0,x7=0;
30     a[0]=1;
31     while(len <= 5846)
32     {
33           m=min_4(a[x2]*2,a[x3]*3,a[x5]*5,a[x7]*7);
34           if(m==a[x2]*2)x2++;
35           if(m==a[x3]*3)x3++;
36           if(m==a[x5]*5)x5++;
37           if(m==a[x7]*7)x7++;
38           a[len++]=m;
39     }
40     while(scanf("%d",&n))
41     {
42           if(!n)
43               break;
44           string s=work(n);
45           printf("The ");
46           printf("%d",n);
47           printf("%s",s.c_str());
48           printf(" humble number is ");
49           printf("%d",a[n-1]);
50           printf(".\n");
51     }
52     return 0;
53 }
54  
时间: 2024-10-14 00:44:31

POJ 2247的相关文章

递推(三):POJ中的三道递推例题POJ 1664、POJ 2247和POJ 1338

[例9]放苹果(POJ 1664) Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. Output 对输入的每组数据M和N,用一行输出相应的K. Sample Input 1 7 3 Sample Output 8 (1)编程思路. 设f[m]

poj 2247 Humble Numbers

Humble Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9453   Accepted: 4440 题目大意:找出所有因子中只有2,3,5,7的数,给出n,求出第n个这样   只有6000不到打表 注意第11  12  13 的输出与 1   2   3    几十一   几十二   几十三 的输出不同 #include <iostream> #include <algorithm> u

POJ 2545+2591+2247+1338简单水题

[题意简述]:就是有这样的一个序列,就拿当p1 = 2,p2 = 3, p3 = 5,来举例,由这三个数为基准组成的序列是: 2,3,4,5,6,8,9,10,12--现在给你这个序列数组的下标,让你求得这个数组中,这个下标里的数是多少. [分析]:2,3,4,5,6,8,9,10,12--这个序列式由2,3,5这三个数生成的,具体如何生成,就是: 详见代码: 这里以POJ2545为例: //弄清其中的逻辑关系,可以从最简单的2,3,5试着做起! #include<iostream> #inc

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348

poj题库分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea

POJ题目(转)

http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html 初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (

Poj 题目分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea

POJ题目分类(转)

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea