判断对称数
随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。不能用字符串库函数
/***************************************************************
1.
函数名称:Symmetry
功能: 判断一个数时候为回文数(121,35653)
输入: 长整型的数
输出: 若为回文数返回值为1 esle 0
******************************************************************/
/***************************************************************
1.
函数名称:Symmetry
功能: 判断一个数时候为回文数(121,35653)
输入: 长整型的数
输出: 若为回文数返回值为1 esle 0
******************************************************************/
(1)
unsigned char Symmetry (long n)
{
long i,temp;
i=n; temp=0;
while(i) //不用出现长度问题,将数按高低位掉换
{
temp=temp*10+i%10;
i/=10;
}
return(temp==n);
}
(2)
unsigned char Symmetry (long n)
{
long i,temp;
i=n; temp=0;
while(i) //不用出现长度问题,将数按高低位掉换
{
temp=temp*10+i%10;
i/=10;
}
return(temp==n);
}
(2)
#include <math.h>
#include <stdio.h>
int digit(int n)
{
return n > 0 ? 1 + digit(n/10) : 0;
}
int rint(int n)
{
return n >= 10 ? n%10 * (int)pow(10.0, digit(n)-1) + rint(n/10) : n;
}
int test(int n)
{
return n == rint(n);
}
int main()
{
for(int i = 0; i < 10000000; ++i)
{
if(test(i))
printf("%d/n", i);
}
}
#include <stdio.h>
int digit(int n)
{
return n > 0 ? 1 + digit(n/10) : 0;
}
int rint(int n)
{
return n >= 10 ? n%10 * (int)pow(10.0, digit(n)-1) + rint(n/10) : n;
}
int test(int n)
{
return n == rint(n);
}
int main()
{
for(int i = 0; i < 10000000; ++i)
{
if(test(i))
printf("%d/n", i);
}
}