//等急了吧?
#include "iostream.h"
#include "stdio.h"
#include "string.h"
int reverse(int m)
{
char s[10];
int i,r,n=0;
for(i=0;m!=0;i++) //首先请注意,你的s[0]本身就是最低位,s[5]才是最高位
{
r=m%10;
m=m/10;
s[i]=r;
}
int l = i;
//int l=strlen(s); 之所以这里不能用strlen是因为strlen遇到第一个0就确定其为结尾,所以10***的l都等于1
for(i = 0;i < l;i++) //希望你注意一下编程风格,这里加一对{}不影响效率,并且有助于阅读
{
n = n * 10 + s[i];
//n=n+s[i]*10*i; 这个计算公式是错误的,比如第二位应该是10^2=100而不是10*2=20
}
//n = n + s[0]; //s[0]逆序之后是最高位
return(n);
}
void main()
{
int i,n=0;
for(i=10000;n<10;i++) //找到第10个就结束了
{
if(reverse(i)==i)
{
cout< n++;
}
}
}
#include "iostream.h"
#include "stdio.h"
#include "string.h"
int reverse(int m)
{
int s[10];
int i,r,n=0;
for(i=0;m!=0;i++)
{
r=m%10;
m=m/10;
s[i]=r;
}
int l=i;
for(i=0;i
return(n);
}
int main()
{
int i,n=0;
for(i=10000;n<11;i++)
if(reverse(i)==i)
{
cout< n++;
}
return 0;
}
10001
10101
10201
10301
10401
10501
10601
10701
10801
10901
11011