大家帮我看一下~
#include<iostream>using namespace std;
int f1(int m)
{
int a,b,n=0;
if(m>=0&&m<10)
return 1;
a=m/10;
b=m%10;
if(a==b)
return 1;
else
return 0;
}
int f2(int m)
{
int i=0,b[20],j,leap;
int *p=b,*q;
while( m!=0)
{
b[i++]=m%2;
m=m/2;
}
i=i-1;
q=p+i;
for(;p<q-i/2,q>=p+i/2;)
{
if(*p==*q)
{
leap=1;
p++;
q--;
}
else
leap=0;
}
if(leap==1)
return 1;
else
return 0;
}
main()
{
int m;
for(m=0;m<100;m++)
{
if((f1(m)&&f2(m))==1)
cout<<m<<endl;
}
}
功能是输出100以内二进制和十进制正读和反读都一样的数 ,我的算法是不是错了,总是得不到结果的。 大家帮帮忙看一看,先谢了。