字符串与数字转换的题目
//
// main.cpp
// PATA1136
//
// Created by Phoenix on 2018/2/26.
// Copyright © 2018年 Phoenix. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
bool judge(string a) { //判断是否为对称字符串
bool flag = true;
int i = 0;
int j = a.size() - 1;
for(i, j; i < j; i++, j--) {
if(a[i] != a[j]) flag = false;
}
return flag;
}
string add(string a) {
string b, d;
for(int i = a.size() - 1; i >= 0; i--) {
b += a[i];
}
cout << a << " + " << b << " = ";
int t = 0;
int c[2000];
for(int i = 0; i < a.size(); i++) {
int c1 = a[i] - '0';
int c2 = b[i] - '0';
c[i] = c1 + c2 + t;
t = c[i] / 10;
c[i] %= 10;
}
int num = a.size();
if(t == 1) c[num++] = 1;
for(int i = num - 1; i >= 0; i--) {
d += c[i] + '0';
}
cout << d << endl;
return d;
}
int main(int argc, const char * argv[]) {
string a;
cin >> a;
int num = 0;
bool flag = judge(a);
while(flag == false && num < 10) {
num++;
a = add(a);
flag = judge(a);
}
if(num < 10) {
cout << a;
printf(" is a palindromic number.\n");
} else {
printf("Not found in 10 iterations.\n");
}
return 0;
}