D-好人easy
题目:
问题分析:
因为数字比较小,所以直接暴力遍历就能出来,关于判断回文,我采用的是放入数组中,然后对称判断是否符合回文性质,下面我详细注释说明了一下
AC代码:
#include <bits/stdc++.h>
using namespace std;
int a[7];
int main()
{
int n;
cin >> n;
int i,j;
for ( i=1; i<=n; i++ )
{
//小于等于9直接输出
if ( i<=9 )
cout << i << endl;
else
{
int temp = i;
int num=0;
//计算这是几位数
while ( temp>0 )
{
num++;
temp /= 10;
}
temp = i;
//从这个数字末位取余依次放入数组中
//即将这个数字每一位依次拷贝进入数组
for ( j=num; j>=1; --j )
{
a[j] = temp%10;
temp/=10;
}
temp = i;
int mark=0;
//只用检验一半就好
for ( j=1; j<=num/2; ++j )
{
if ( a[j] != a[num-j+1] )
{
mark = 1;
//如果不相等直接跳出循环
//mark=1即不符合条件
break;
}
}
if ( mark==0 )
cout << temp << endl;
}
}
return 0;
}