| ||||||||||
| 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 | |||||||||
真不知道错哪里了,难道是我序数词没弄对?我特意去翻了书了...#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