~cpp
#include <iostream>
using namespace std;
#include <assert.h>
const int TEN = 10;
int reverse(int number); //꾼 -1
void main(){
int N;
int input[10] = {0};
int output[10] = {0};
int outputN[10] = {0};
int trial = 0;
cin>> N;
for(int cycle=0; cycle< N; cycle++ ){
cin>>input[cycle];
trial = 0;
while(1){
if( reverse( input[cycle] ) == -1){
output[cycle] = input[cycle];
outputN[cycle]= trial;
break;
}else{
input[cycle]+= reverse( input[cycle] );
trial++;
}
}
}
for(int cycle=0; cycle< N; cycle++ )
cout<<outputN[cycle]<<" "<<output[cycle]<<endl;
}
int reverse(int number){
int originalNum = number;
int numbers[10] = {0};
int zeros = 1;
int chipers = 0; //a number of five chipers ,
int returnNum = 0;
// .
for(chipers = 0; number > zeros; zeros *= TEN){
chipers++;
}
zeros /= TEN;
// .
for(int i=0; i< chipers; i++){
numbers[i] = number / zeros;
number -= zeros * numbers[i];
zeros /= TEN;
}
// .
zeros = 1;
for(i=0; i< chipers; i++){
returnNum += numbers[i] * zeros;
zeros *= TEN;
}
//returnNum 과 .
if( returnNum == originalNum )
return -1;
return returnNum;
}