C语言,如果一个数从左边读和从右边读是一样的,那么我们说这就是一个回文数,比方说十进制的121,12321等

问题描述:

C语言,如果一个数从左边读和从右边读是一样的,那么我们说这就是一个回文数,比方说十进制的121,12321等
当然,数的特性还依赖于它表示的进制,比方说十进制的17,在十进制下显然不是回文数,但是如果转换为2进制(10001)表示它,那就变成了一个回文数,转换为3进制(122)又不是回文数,但是转换为4进制(101)又是回文数.
请编写一个程序,在2-16进制下,确认给出的一系列数是否为回文数.如果都不是回文数,输出:数字xx不是回文数!
输入输出为:
输入:(0结束输入)
17
19
0
输出:
数字17是回文数在2,4,16进制下是回文数.
数字19不是回文数!
(Tips:回文判断有多种方法,寻找最优解才是关键!)
1个回答 分类:综合 2014-10-04

问题解答:

我来补答
#include
#include
int check(char p[],int k)
{
int i;
for(i=0; i0)
{
int g=0;
for(i=2; i0; v/=i)p[j++]=v%i;
if(check(p,j-1))tag[g++]=i;
}
if(g>0)
{
printf("数字%d是回文数在%d",n,tag[0]);
for(i=1; i
 
 
展开全文阅读
剩余:2000