PAT (Advanced) 1019. General Palindromic Number (20)

来源:互联网 发布:行楷字帖谁的好 知乎 编辑:程序博客网 时间:2024/05/29 10:11

原题:1019. General Palindromic Number (20)



解题思路:

1.将给定的数按给定基数分解存入数组

2.判定数组是否对称



C++代码如下:

#include<cstdio>#include<cstring>int num[200];int cnt;//保存位数//转换为数组void change(int n, int base){    if(n == 0)        num[cnt++] = 0;    while(n > 0)    {        num[cnt++] = n % base;        n /= base;    }}//判定对称bool judge(){    for(int i = 0; i < cnt; i++)    {        if(num[i] != num[cnt - 1 - i])            return false;    }    return true;}int main(){    int n, base;    while(scanf("%d%d", &n, &base) != EOF)    {        cnt = 0;        change(n, base);        if(judge())            printf("Yes\n");        else            printf("No\n");        for(int i = cnt - 1; i >= 0; i--)        {            if(i == cnt - 1)                printf("%d", num[i]);            else                printf(" %d", num[i]);        }        printf("\n");    }    return 0;}


阅读全文
0 0
原创粉丝点击