我想做UVA题时,看到了这道红题,刚好我以前定义了几个函数,存在函数库中可以A掉这题,但是却RE了
代码部分除main函数外的其他部分没有问题。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
string tostring(long long y){
long long d=0,j=y;string o,h;
while(j!=0){
d++;
j/=10;
}
int a[d],s=0,f=d-1;
for(j=0;j<d;j++){
a[j]=y%10;
y/=10;
}
for(;s<f;s++,f--)swap(a[s],a[f]);
for(j=0;j<d;j++)h+=char(a[j]+'0');
for(long long i=0;i<h.length();i++)if(h[i]!=' ')o+=h[i];
return o;
}
bool accept(string s){
bool x=true;
int j=s.length()-1;
for(int i=0;i<=j;i++){
if(s[i]==s[j]){
j--;
continue;
}
else{
x=false;
break;
}
}
return x;
}
long long intpow(long long x,long long y){
if(y<0)return -1;
else if(y==0)return 1;
long long sum=1;
for(;y>0;y--){
sum=sum*x;
}
return sum;
}
long long atoi(string x){
int a[x.length()-1];
for(int i=0;i<x.length();i++){
a[i]=x[i]-'0';
}
long long kkksc03=0,qaq=x.length()-1;
for(int i=0;i<x.length();i++){
kkksc03+=(intpow(10,qaq)*a[i]);
qaq--;
}
return kkksc03;
}
int main(){
int a;
scanf("%d",&a);
while(a--){
int x;
scanf("%d",&x);
int cnt=0;
while(accept(tostring(x))!=true){
string d=tostring(x);
string j=d;
reverse(j.begin(),j.end());
int k=atoi(j)+atoi(d);
x=k;
cnt++;
}
printf("%d %d\n",cnt,x);
}
return 0;
}