#include <math.h>
int loop(int i)
{
//首先计算i是一个几位数
int count = 0; //计算是几位数
int num = i;
do
{
int temp = num % 10;
count++;
num = num / 10;
} while (num);
//定义一个first为第一位,定义end为最后一位
int first, end, j = 0, k;
int flag[count / 2]; //数组中标志都为1时为回文,否则不为回文
for (k = count - 1; k >= count / 2; k--)
{
first = i / pow(10, k);
i = i - first * pow(10, k);
end = i % 10;
if (first == end)
{
flag[j] = 1;
}
else
{
flag[j] = 0;
}
j++;
i = i / 10;
k--;
}
int m = 0;
if (flag[m] == 1)
{
while (++m < count / 2)
{
if (flag[m] == 0)
return 0;
}
return 1;
}
else
return 0;
}
int main()
{
int a = 1, b = 11, i, numcount = 0; // count计算整数的位数,numcount为回文数字的个数
// printf("请输入a和b的值:\n");
// scanf("%d%d", &a, &b);
for (i = a; i <= b; i++)
{
if (i % 2 == 1)
{
if (loop(i) == 1)
{
printf("%d ", i);
numcount++;
if (numcount % 5 == 0)
{
printf("\n");
}
}
}
}
printf("\n");
return 0;
}
输入数字位数不限的回文判断程序
最新推荐文章于 2024-09-29 07:36:50 发布