hdu 1058 humble numbers
2012-11-06 19:27
309 查看
恶心的输出
#include<iostream> #include<cstring> #include<algorithm> #include<cstdio> #include<vector> #include<string> #include<cmath> #include<deque> #include<map> #include<queue> #define iinf 0x7f7f7f7f #define linf 1000000000000000000LL #define dinf 1e200 #define eps 1e-11 #define lng long long #define sqr(a) ((a)*(a)) #define pii pair<int,int> #define X first #define Y second #define pi 3.14159265359 #define cc(i,j) memset(i,j,sizeof(i)) #define two(x) ((lng)1<<(x)) #define mod 9901 #define pmod(x,y) (x%y+y)%y #include<set> using namespace std; typedef vector<int> vi; typedef vector<string> vs; template<class T> inline void checkmax(T &x,T y){if(x<y) x=y;} template<class T> inline void checkmin(T &x,T y){if(x>y) x=y;} template<class T> inline T Min(T x,T y){return (x>y?y:x);} template<class T> inline T Max(T x,T y){return (x<y?y:x);} template<class T> T Abs(T a){return a>0?a:(-a);} int a[5843]; int main() { a[1]=1; for(int ii=2,i=1,j=1,k=1,z=1;ii<=5842;++ii) { int ans=Min(Min(a[i]*2,a[j]*3),Min(a[k]*5,a[z]*7)); if(ans==a[i]*2) ++i; if(ans==a[j]*3) ++j; if(ans==a[k]*5) ++k; if(ans==a[z]*7) ++z; a[ii]=ans; } int n; char b[3]; b[3]='\0'; while(scanf("%d",&n)==1&&n) { int k=n%100,f=n%10; strcpy(b,"th"); if(k!=11&&f==1) strcpy(b,"st"); if(k!=12&&f==2) strcpy(b,"nd"); if(k!=13&&f==3) strcpy(b,"rd"); printf("The %d%s humble number is %d.\n",n,b,a ); } return 0; }
相关文章推荐
- hdu 1058 Humble Numbers (DP)
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers(dp+greedy)
- [ACM] hdu 1058 Humble Numbers
- hdu 1058 Humble Numbers || poj 1338(dp)
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU-1058 Humble Numbers(线性dp 枚举因子个数)
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU_1058 Humble Numbers(DP)
- hdu 1058 Humble Numbers
- 杭电 HDU 1058 Humble Numbers
- [ACM] hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers 【DP】
- hdu 1058 Humble Numbers 丑数
- HDU 1058 - Humble Numbers
- C - Humble Numbers HDU - 1058
- HDU--1058--Humble Numbers
- hdu 1058 Humble Numbers