这个求11-999之间满足m,m^2,m^3均为回文数的程序为什么什么结果都输不出呀??

2024-11-18 21:28:24
推荐回答(2个)
回答1:

这一块是这么写:
for(m=11;m<1000;m++)
if(symn(m)&&symn(m*m)&&symn(m*m*m))
cout<
while(n) n是0怎么会执行呢。

修改如下:
#include
using namespace std;

bool symn(long m);
int main()
{
long m,i;
for(m=11;m<1000;m++)
if(symn(m)&&symn(m*m)&&symn(m*m*m))
cout< return 0;
}

bool symn(long m)
{
long n=0;
do
{
n=n*10+m%10;
m=m/10;
}while(n);
return (m==n);
}

回答2:

改成如下,记得要先保存m的值!!
#include
using namespace std;

bool symn(long m);
int main()
{
long m;
for(m=11;m<1000;m++)
if(symn(m)&&symn(m*m)&&symn(m*m*m))
cout< return 0;
}

bool symn(long m)
{
long n=0,i=m;
while(i)
{
n=n*10+i%10;
i=i/10;
}
return (m==n);
}