200到3000回文数
文章目录
1.回文数定义及判断
回文数:左右对称,比如202,212,1111,1221等
编写函数 palindromeNumber,求[200,3000]
范围内的回文数有哪些,在主函数中调用该函数。
输出区间[200,3000]
中所有的回文数,一行一个回文数,不需要输出其它无关的字符。
则计算200到3000的回文数时.
- [200,1000)中个位和百位相等,十位无论为多少都可以
- [1000,3000]中千位和个位相等,十位和百位相等
2.判断函数的实现
int palindromeNumber(int i)
{
int n1 = 0;//千位
int n2 = 0;//百位
int n3 = 0;//十位
int n4 = 0;//个位
if (i < 1000)//百位求回文数
{
n2 = i / 100;
n4 = i % 10;
if (n2 == n4)
{
return i;//回文返回该数
}
else
{
return 0;//不是回文返回0
}
}
else//千位回文数
{
n1 = i / 1000;
n4 = i % 10;
n3 = (i % 100)/10;
n2 = (i % 1000) / 100;
if (n1 == n4 && n2 == n3)//千位回文数判断
{
return i;
}
else
{
return 0;
}
}
}
这里取余后除就可以得到某一位的数了
3.完整代码
#include<stdio.h>
int palindromeNumber(int i)
{
int n1 = 0;//千位
int n2 = 0;//百位
int n3 = 0;//十位
int n4 = 0;//个位
if (i < 1000)//百位求回文数
{
n2 = i / 100;
n4 = i % 10;
if (n2 == n4)
{
return i;//回文返回该数
}
else
{
return 0;//不是回文返回0
}
}
else//千位回文数
{
n1 = i / 1000;
n4 = i % 10;
n3 = (i % 100)/10;
n2 = (i % 1000) / 100;
if (n1 == n4 && n2 == n3)//千位回文数判断
{
return i;
}
else
{
return 0;
}
}
}
int main()
{
int i = 0;
int result = 0;//结果
for (i = 200; i <= 3000; i++)
{
result=palindromeNumber(i);
if (result != 0)
{
printf("%d\n", result);
}
}
return 0;
}
这样就可以显示200到3000所有的回文数了。