#include <stdio.h>
#include <stdio.h>
#include <string.h>
char in[200];
int num[200] = {0};
int k;
void add(int *a, int &n);
bool isPa(int *a, int n);
int main(int argc, char *argv[]) {
scanf("%s %d", in, &k);
int n = strlen(in);
int i;
for (i = n - 1; i >= 0; i--) {
num[n - 1 - i] = in[i] - '0';
}
int count = 0;
while(!isPa(num, n) && count < k) {
add(num, n);
count++;
}
for (i = n - 1; i >= 0; i--) {
printf("%d", num[i]);
}
printf("\n%d\n", count);
return 0;
}
void add(int *a, int &n) {
int tmp[200] = {0};
for (int i = 0; i < n; i++) {
tmp[i] = a[i] + a[n - 1 - i];
}
for (int i = 0; i < n; i++) {
if (tmp[i] >= 10) {
tmp[i + 1] += tmp[i] / 10;
tmp[i] = tmp[i] % 10;
}
}
if (tmp[n] > 0) n++;
for (int i = 0; i < n; i++)
a[i] = tmp[i];
}
bool isPa(int *a, int n) {
for (int i = 0; i < n; i++) {
if (a[i] != a[n - i - 1])
return false;
}
return true;
}
【PAT甲级】1024. Palindromic Number (25)
最新推荐文章于 2022-07-17 10:44:03 发布