Saturday 21 March 2009

POJ ( acm.pku.edu.cn ) 3077

我小学时还真以为“应该”这样舍入呢



#include <iostream>
using namespace std;
//int xround(int n){
// double dn=n;
// int d=floor(log10(dn))+1;
// int pow10=1;
// for (int i=1;i<d;++i) pow10*=10;
// return int(dn/pow10+0.5)*pow10;
//}
char* xround(char n[]){
static char ret[16]={0};
char *a=n,*b=ret+15;
for(;*a;++a);
for(--a,--b;a!=n;--a,--b){
if(*a-'0'>=5)
++*(a-1);
*b=*a='0';
}
if(*a-'0'>=10){
*b='0';
*--b='1';
} else {
*b=*a;
}
return b;
}
int main(){
int N;
for(cin>>N;N;--N){
char n[16];
cin>>n;
cout<<xround(n)<<endl;
}
return 0;
}

No comments:

Post a Comment