1.寻找并输出11~999之间的数m,它满足m,m的平方,m的三次方均为回文数。
分析:回文数即左右对称的数,例如11,121,1331。判断一个数是否是回文,可以用除以10取余的方法,从最低位开始,依次取出该数的各位数字,然后用最低位充当最高位,按反序重新构成新的数,与原数比较是否相等,若相等,则原数为回文。
代码如下:
#include<iostream>
using namespace std;
bool symm(unsigned n){
unsigned i=n;
unsigned m=0;
while(i>0)
{
m=m*10+i%10;
i/=10;
}
return m==n;
}
int main() {
for(unsigned m=11;m<1000;m++)
if(symm(m)&&symm(m*m*m)){
cout<<"m="<<m;
cout<<" m*m="<<m*m;
cout<<" m*m*m"<<m*m*m<<endl;
}
return 0;
}