| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
这题最E的地方就是那里了In Reply To:真不知道错哪里了,难道是我序数词没弄对?我特意去翻了书了... Posted by:lcftc at 2005-09-09 12:57:39 > #include<iostream>
> #include<vector>
> #include<algorithm>
> using namespace std;
>
> const int MAXN=2000000010;
>
> bool GetCount(int& start,int fact,int times){
> int i;
> for(i=0;i<times;i++){
> if(double(start)>double(MAXN)/double(fact)){
> return false;
> }else{
> start*=fact;
> }
> }
> return true;
> }
>
>
> int main(){
> int a2,a3,a5,a7,i;
>
> vector<int> vet;
> vet.push_back(0);
> for(a2=0;a2<=31;a2++){
> for(a3=0;a3<=20;a3++){
> for(a5=0;a5<=13;a5++){
> for(a7=0;a7<=12;a7++){
> int cnt=1;
> if(GetCount(cnt,2,a2) && GetCount(cnt,3,a3) && GetCount(cnt,5,a5) && GetCount(cnt,7,a7)){
> vet.push_back(cnt);
> }
> }
> }
> }
> }
> sort(vet.begin(),vet.end());
>
> int n;
> while(1){
> scanf("%d",&n);
> if(n==0) break;
> int result=vet[n];
> char buff[4];
> if(n<19){
> if(n==1){
> strcpy(buff,"st");
> }else if(n==2){
> strcpy(buff,"nd");
> }else if(n==3){
> strcpy(buff,"rd");
> }else{
> strcpy(buff,"th");
> }
> }else if(n%10 ==0 && n<=90){
> strcpy(buff,"th");
> }else{
> if(n%10 == 1){
> strcpy(buff,"st");
> }else if(n%10==2){
> strcpy(buff,"nd");
> }else if(n%10 == 3){
> strcpy(buff,"rd");
> }else{
> strcpy(buff,"th");
> }
> }
> printf("The %d%s humble number is %d.\n",n,buff,result);
> }
>
>
> // system("pause");
>
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator