Skip to content

Instantly share code, notes, and snippets.

@henrybear327
Last active December 3, 2017 03:28
Show Gist options
  • Save henrybear327/e68b6954d6c75537876a40a2b196ff90 to your computer and use it in GitHub Desktop.
Save henrybear327/e68b6954d6c75537876a40a2b196ff90 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <string.h>
typedef long long ll;
/*
ll reverseNumber(ll num)
{
ll res = 0;
while (num > 0) {
res *= 10;
res += num % 10;
num /= 10;
}
return res;
}
*/
int reversed[222];
int number[222];
int getLen(int arr[])
{
int len = 0;
for (int i = 222 - 1; i >= 0; i--)
if (arr[i] != 0) {
len = i + 1;
break;
}
return len;
}
void print(int arr[])
{
int len = getLen(arr);
for (int i = 0; i < len; i++)
printf("%d", arr[i]);
printf("\n");
}
void reverseString(int inp[])
{
int len = getLen(number);
memset(reversed, 0, sizeof(reversed));
for (int i = 0; i < len; i++)
reversed[i] = inp[len - 1 - i];
}
void addString()
{
reverseString(number);
int tmp[222] = {0};
for (int i = 0; i < 221; i++)
tmp[i] = number[i] + reversed[i];
for (int i = 0; i < 221; i++) {
tmp[i + 1] += tmp[i] / 10;
tmp[i] %= 10;
}
reverseString(tmp);
for (int i = 0; i < 222; i++)
number[i] = tmp[i];
}
int hasDifference()
{
int len = getLen(number);
for (int i = 0; i < len; i++)
if (number[i] != reversed[i])
return 0;
return 1;
}
void solve()
{
char inp[222];
scanf("%s", inp);
int len = strlen(inp);
memset(number, 0, sizeof(number));
for (int i = 0; i < len; i++)
number[i] = inp[i] - '0';
int cnt = 0;
reverseString(number);
while (hasDifference() == 0) {
cnt++;
addString();
}
printf("%d ", cnt);
print(number);
}
int main()
{
int ncase;
scanf("%d", &ncase);
while (ncase--)
solve();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment