出个题,编程判断一个正整数是否回文数字

来源:百度知道 编辑:UC知道 时间:2024/06/07 00:34:56
出个题,编程判断一个正整数是否回文数字,回文数字是下面这样的数字:2,121,123321,4567654...
用C语言编码实现。

限制条件:不准调用任何库函数。
我自己做的:
bool isHuiWen(unsigned int uiNum)
{
unsigned int temp = uiNum;
unsigned int uiRevesNum = 0;
while (temp > 0)
{
uiRevesNum = uiRevesNum * 10 + temp%10;
temp /= 10;
}
return uiNum == uiRevesNum;
}

如果你还能比我做的更简洁效率更高,我给50分。
其中我看到有位朋友回答的比较符合题目。

我这里设计的是判断一个数据是不是回文的函数,你自己可以把它扩展一下,扩展成一个能判断一个数组的函数,这个你没有问题吧,自己动脑!
int tun1(void)
{
int i,n=0,temp; //定义循环变量i, n是data这个数据是的位数,如data=123321 则n=6,temp为临时变量
long int data,data1,data2=0; //data为要判断的数据,data1,data2为临时变量
scanf("\d",&data);//输入data
if(data<0) data1=(-1)*data; //如果data是负数则把它变成正数并放在临时变量data1中
while(data1!=0) // 只要data1不为0刚执行循环判断出data是几位数并记录n中
{
data1=data1/10;
n++;
}
for(i=1;i<=n;i++) //这个for语句功能是把data的每一位倒过来,倒过来后新成的数据为data2,如data=123456则data2=654321
{
temp=data1%10; //取出data的最低位放入temp中
data1=data1%10; //去掉最低位
data2=data2*10+temp; //把data1中的数据位倒排
}
if(data2==data1) return 1; //判断data2与data1是否相等,若相等则data为回文数,返回1;否则反回0
else return 0;
}

123321也是回文数吗?那1221也是吗? 没弄错吧!

不调用库函数 连输入输出都 做不了 怎么弄

#include <iostream>
#include <vector>
#include <string>