A1019 General Palindromic Number(b进制回文数)

A number that will be the same when it is written forwards or backwards is known as a Palindromic Number. For example, 1234321 is a palindromic number. All single digit numbers are palindromic numbers.

Given any positive decimal integer N and a base b, you are supposed to tell if N is a palindromic number in base b.

回文数:正读和倒读大小一样的数字

回文数的概念不只是存在于十进制数,在任意的b进制数中也可以。

0在任意进制中都是回文数;所有一位数都是回文数

decimal integer 十进制数字

输入格式:

Each input file contains one test case. Each case consists of two positive numbers N and b, where 0<N≤1000000000​​ is the decimal number and 2≤b≤10​00000000​​ is the base. The numbers are separated by a space.

输入一个十进制正数N,基数b(≥2)

输出格式:

For each test case, first print in one line Yes if N is a palindromic number in base b, or No if not. Then in the next line, print N as the number in base b in the form "a​k​​ a​k−1​​ ... a​0​​". Notice that there must be no extra space at the end of output.

输出两行,第一行为Yes/No,第二行为N的b进制表示数

Sample Input

27 2


Sample Output

Yes
1 1 0 1 1

代码

#include<stdio.h>

int main(){
    int result[31]={0};
    int n,b,counts,f=1;
    scanf("%d%d",&n,&b);
    for(counts=0;n>0;counts++){
        result[counts]=n%b;
        n/=b;
    }
    counts--;
    for(int i=0;i<=counts;i++){
        if(result[i]!=result[counts-i]){
            f=0;
        }
    }

    if(f==1) printf("Yes\n");
    else printf("No\n");

    printf("%d",result[counts]);
    for(int i=counts-1;i>=0;i--) printf(" %d",result[i]);

return 0;
}

注意

如果表示为2进制的话,需要30位,用数组表述比较方便

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值