题解 | #回文对称数#
回文对称数
https://www.nowcoder.com/practice/5b143af8328f4e42adf5e10397ae44ef
想到一个笨方法,欢迎各位交流指教。
主函数输入n 进入循环从1开始判断每一个数字是不是回文数 如果是则打印
判断函数func() 如果传递参数是一位数字直接返回1,设定一个数组用于存放参数的每一位(倒序存放,如果是回文数正序倒序不受影响,所以不用刻意倒回来)
局部变量i用于调整数组收纳每一位所对应的元素下标,并且记录元素个数
从第0位开始对比到第i//2位,如果存在不相等的情况,跳出循环返回0;
#include <stdio.h>
int func(int x){
if(x/10==0)
{
return 1;
}
int arr[6]={0};
int i=0;
while(x)
{
arr[i]=x%10;
i++;
x/=10;
}//数字每一位倒序放入数组
int flag=1;
for(int j=0;j<i/2;j++)
{
if(arr[j]!=arr[i-1-j])
{
flag=0;
break;
}
}
return flag;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
if(func(i))
{
printf("%d\n",i);
}
}
return 0;
}