A1019. General Palindromic Number (20)

原创 2018年04月15日 16:39:38

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.

Although palindromic numbers are most often considered in the decimal system, the concept of palindromicity can be applied to the natural numbers in any numeral system. Consider a number N > 0 in base b >= 2, where it is written in standard notation with k+1 digits ai as the sum of (aibi) for i from 0 to k. Here, as usual, 0 <= ai < b for all i and ak is non-zero. Then N is palindromic if and only if ai = ak-i for all i. Zero is written 0 in any base and is also palindromic by definition.

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

Input Specification:

Each input file contains one test case. Each case consists of two non-negative numbers N and b, where 0 <= N <= 109 is the decimal number and 2 <= b <= 109 is the base. The numbers are separated by a space.

Output Specification:

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 "ak ak-1 ... a0". Notice that there must be no extra space at the end of output.

Sample Input 1:
27 2
Sample Output 1:
Yes
1 1 0 1 1
Sample Input 2:
121 5
Sample Output 2:
No
4 4 1   

题目大意:

输入整数n,b,将十进制数n转化为b进制数x之后判断是否为回文数(正反写相同),是则输出Yes反之No,最后倒序输出x;

所有一位数均为回文数;

思路:

先将n转化为b进制数x,之后写一循环第一个数对应最后一个数,依次类推,判断是否为回文数;

注意查看是否囊括x只有一位的情况;

代码如下:

#include <cstdio>

bool judge (int ns[], int count) {				//写一函数判断; 
	for (int i = 0; i <= count / 2; i++) {
		if (ns[i] != ns[count - 1 - i])	{
			return false;
			break;
		}
	}
	return true;
}

int main()
{
	int n, b, ns[35];
	int count = 0;
	scanf ("%d %d", &n, &b);
	do {
		ns[count++] = n % b;
		n = n / b;
	}	while (n != 0);
	
	bool flag = judge (ns, count);
	if (flag == true)		printf ("Yes\n");
	else 					printf ("No\n");
	
	for (int i = count - 1; i >= 0; i--) {		                //倒序输出; 
		printf ("%d", ns[i]);
		if (i != 0)		printf (" ");
		else  	printf ("\n");
	}

 	return 0;
}

Number类

本课程介绍java.lang.Number类 详细介绍了Number类的使用,格式化,精确计算等
  • 2017年02月06日 13:33

浙大 PAT 1019. General Palindromic Number (20)

1019. General Palindromic Number (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限...
  • IAccepted
  • IAccepted
  • 2014-03-04 14:44:45
  • 1677

pat1019General Palindromic Number (20)

题意分析: (1)水题,给出一个整数和一个基底,把这个整数转化成此基底下的对应的数,判断转换后的数是不是回文数; 可能坑点: #include #include #include using n...
  • LostStephon
  • LostStephon
  • 2015-10-03 17:49:41
  • 257

PAT 1019 General Palindromic Number(进制水题)

题目https://www.patest.cn/contests/pat-a-practise/1019 题意:判断将数字N转换到base进制下以后是否满足回文。 解题思路进制转换的水题,只需模拟...
  • lecholin
  • lecholin
  • 2017-06-06 22:16:42
  • 146

PAT 甲级 1019 General Palindromic Number(简单题)

PAT 甲级 1019 General Palindromic Number(简单题)
  • Dacc123
  • Dacc123
  • 2016-05-30 17:50:28
  • 341

PAT A1019. General Palindromic Number (20)

A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu...
  • jolivan
  • jolivan
  • 2017-02-06 17:10:27
  • 86

【PAT】A1019. General Palindromic Number (20)

A1019. General Palindromic Number (20)
  • lilydedbb
  • lilydedbb
  • 2016-12-05 13:18:57
  • 109

PAT A1019. General Palindromic Number

1019. General Palindromic Number (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限...
  • youm11
  • youm11
  • 2015-03-07 14:27:03
  • 139

1019. General Palindromic Number

http://pat.zju.edu.cn/contests/pat-a-practise/1019 // 0应特殊处理 // 进制转换,对称性 #include #define SI...
  • Staibin
  • Staibin
  • 2014-03-10 15:05:18
  • 482

PAT A1019 General Palindromic Number

//ac了,自己做的,但是注意末尾无空格的处理只有一行参考了书。另外输出那里可以更简洁,因为注意到无论是还是不是,都要输出进制形式的 //break是跳出最内层的循环(while,for)或switc...
  • daisyleedq
  • daisyleedq
  • 2015-02-22 22:01:41
  • 232
收藏助手
不良信息举报
您举报文章:A1019. General Palindromic Number (20)
举报原因:
原因补充:

(最多只允许输入30个字)