基础练习 回文数
间限制:1.0s 内存限制:512.0MB
问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
思路1:
判断条件也很清楚,从左读的书就是数本身,关键看如何得到从右开始读的数
程序如下:
#include <iostream>
using namespace std;
int main()
{
for(int number=1000;number<10000;number++)
{
int a=number;
int b=0;
while(a)//得到从右读的数字
{
b=a%10+b*10;
a=a/10;
}
if(b==number)
{
cout<<number<<endl;
}
}
return 0;
}
私以为这段得到从右读的数字的程序写的很巧妙
while(a)//得到从右读的数字
{
b=a%10+b*10;
a=a/10;
}
思路2:
题目条件是求得从左边读和从右边读一样的四位十进制数,也就是说也可以通过比较第一位和第四位,第二位和第三位是否相同来判断
程序如下:
#include <iostream>
using namespace std;
//方法二:直接比较第一位与第四位,第二位与第三位是否相等
int main()
{
int a,b,c,d;
for(int i = 1000;i < 10000;i++)
{
a = i/1000;//最高位 ,即第一位
b = i%1000/100;//第二位
c = i%100/10;//第三位
d = i%10;//个位,即第四位
if((a == d)&&(b == c))
{
cout<<i<<endl;
}
}
return 0;
}