PAT

PAT1019 General Palindromic Number

题目又有坑!!我真的是。。。

Posted by canjuly on September 1, 2018

题目链接

题目大意

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;
}