输入一个正整数,判断是否为回文数;C语言的
"回文数"是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。
任意某一个数通过以下方式相加也可得到
如:29 92=121 还有 194 491=685,586 685=1271,1271 1721=2992
不过很多数还没有发现此类特征(比如196,下面会讲到)
另外个别平方数是回文数
1的平方=1
11的平方=121
111的平方=12321
1111的平方=1234321
在程序设计中,我们常常会遇到回文数的判断问题,这就需要我们对回文数有所了解,并能编写回文数函数予以调用。
在此我用C语言编写了个回文数函数,其中 N 有读者自己定义,其调用很方便。
回文数函数代码如下:
#include
#include
#define N 80
int fun(char *str)
{
char a[N],b[N];
int i=0,j=0;
while(*str)
a[i ]=*str ;
a[i]=' ';
while(i>0)
b[j ]=a[--i];
b[j]=' ';
return (strcmp(a,b)==0);
}
问题补充:
人们迄今未能找到五次方,以及更高次幂的回文数。
于是数学家们猜想:不存在nk(k≥5;n、k均是自然数)形式的回文数。
在电子计算器的实践中,还发现了一桩趣事:任何一个自然数与它的倒序数相加,所得的和再与和的倒序数相加,……如此反复进行下去,经过有限次步骤后,最后必定能得到一个回文数。
这也仅仅是个猜想,因为有些数并不“驯服”。比如说196这个数,按照上述变换规则重复了数十万次,仍未得到回文数。但是人们既不能肯定运算下去永远得不到回文数,也不知道需要再运算多少步才能最终得到回文数。
答:程序源代码: main( ) { long ge,shi,qian,wan,x; scanf("%ld",&x); wan=x/10000; qian=x%10...详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>