题目链接
题目大意
description
给出一个数n,判断其在k进制下是否为回文数,并输出k进制下的数。
思路
inspration
水题,直接按位扔vector里暴力判断就好了
坑点
pit
这道题我真是无语了,题目里明明白白写着n>0,结果我敲好交一发wa了,吓得我是放弃考试。看了一下题解才知道有个样例包括了0。。。所以出题人真的有检查过吗??加了个判断条件顺利AC。
代码
括号换行,又臭又长
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
#define ll long long
using namespace std;
const int INF = 0x3f3f3f3f;
vector<int>num;
int main()
{
int n,k;
scanf("%d%d",&n,&k);
while(n!=0)
{
num.push_back(n%k);
n=n/k;
}
int len = num.size(),flag=1;
for(int i=0;i<len/2;i++)
{
if(num[i]!=num[len-i-1])
{
flag=0;
break;
}
}
if(flag)
printf("Yes\n");
else
printf("No\n");
if(len==0)
{
num.push_back(0);
len++;
}
for(int i=len-1;i>=0;i--)
{
if(i!=len-1)
printf(" ");
printf("%d",num[i]);
}
printf("\n");
return 0;
}