PAT甲1024 Palindromic Number (25)(25 分)

#include <stdio.h>
#include <string.h>
using namespace std;

bool judge(char a[])
{
    int len=strlen(a);
    for(int i=0;i<len;i++)
    {
        if(a[i]!=a[len-i-1])
            return false;
    }
    return true;
}

void reverse(char a[],char b[])
{
    int len=strlen(a);
    for(int i=0;i<len;i++)
    {
        b[len-i-1]=a[i];
    }
    b[len]='\0';
}

void ADD(char a[],char b[],char c[])
{
    int carry=0;
    int len=strlen(a);
    int l=0;
    for(int i=len-1;i>=0;i--)
    {
        c[l++]=(a[i]+b[i]-'0'-'0'+carry)%10+'0';
        carry=(a[i]+b[i]-'0'-'0'+carry)/10;
    }
    if(carry!=0)
        c[l++]=carry+'0';
    c[l++]='\0';
}

int main()
{
    char A[110],B[110],C[110];
    int K;
    scanf("%s %d",&A,&K);
    int step=0;
    while(!judge(A)&&step<K)
    {
        reverse(A,B);
        ADD(A,B,C);
        reverse(C,A);
        step++;
    }
    printf("%s\n%d\n",A,step);
    return 0;
}
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页