範例程式碼 uva10018
//uva10018
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int main() {
int data;
cin >> data; // 取得要判斷的資料數
for(int d = 0; d < data; d++) {
char sNum[11], srNum[11] = "";
bool isReverse = false;
int count = 0;
long long int num, rNum;
// 讀取數字並反轉
cin >> sNum;
for(int i = strlen(sNum) - 1, j = 0; i >= 0; i--, j++)
srNum[j] = sNum[i];
while(!isReverse) {
count++; // 統計執行了幾次
// 從文字轉成數字型態好做計算
num = atol(sNum);
rNum = atol(srNum);
// 從數字再轉回文字並反轉好比較回文
sprintf(sNum, "%lld", num + rNum);
for(int i = strlen(sNum) - 1, j = 0; i >= 0; i--, j++)
srNum[j] = sNum[i];
// 判斷是否回文
if(strcmp(sNum, srNum) == 0)
isReverse = true;
}
// 輸出最後答案
cout << count << ' ' << sNum << endl;
}
return 0;
}