#20064: 單純iostream解法


evan2478hsieh@gmail.com (evan evan)

學校 : 不指定學校
編號 : 111108
來源 : [114.33.111.61]
最後登入時間 :
2019-11-23 00:13:48
c015. 10018 - Reverse and Add -- UVa10018 | From: [114.33.111.61] | 發表日期 : 2019-11-23 00:15

#include <iostream>
using namespace std;


int getlen(int c){   //取得數字長度
int len=0;
while(c!=0){
len+=1;
c/=10;
}
return len;
}

int reverse(int a,int s){ //反轉數字
int tmp=0,newnum=0;
for(int i=1;i<=a;i++){
newnum*=10;
tmp=s%10;
s/=10;
newnum+=tmp;
}
return newnum;
}

int main(){
int c,number,len=0,times=0;
cin>>times;
while(times--){

cin>>number;
len=getlen(number);
int a,b,count=1;
a=reverse(len,number);
b=a+number;
while(b!=reverse(getlen(b),b)){
//cout<<b<<"+"<<reverse(getlen(b),b)<<"="<<b+reverse(getlen(b),b)<<endl;
b+=reverse(getlen(b),b);
count+=1;

}
cout<<count<<" "<<b<<endl;
}
}

 

這當然還可以簡化很多

只是寫這樣比較清楚讓各位了解

 

 
ZeroJudge Forum