【PAT甲级】1024. Palindromic Number (25)

来源:互联网 发布:乐视max2 root软件 编辑:程序博客网 时间:2024/05/29 00:30
#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;}
0 0
原创粉丝点击