编程实现,寻找并输出11至999之间的数m,它满足m、m*m、m*m*m均为回文数。

编程实现,寻找并输出11至999之间的数m,它满足m、m*m、m*m*m均为回文数。所谓回文数是指各位数字左右对称,例如121、676、94249等。满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。请编制函数int JSValue(long m)实现此功能,如果是回文数,则函数返回1,反之则返回0。

第1个回答  2013-06-05
public int JSValue(long m)
{
int b=0;
int temp;
int temp1;
int r;
temp=num*num;
tem1=num*num*num;
String str = new Integer(temp).toString();
String str1= new Integer(temp1).toString();
int n = str.length();
int n1 = str1.length();
for(int i=0;i<n;i++)
{
if(str.charAt(i)!=str.charAt(n-i-1))
{
b=b+1;
break;
}
}
for(int i=0;i<n1;i++)
{
if(str.charAt(i)!=str.charAt(n-i-1))
{
b=b+1;
break;
}
}
if(b==2)
{
r=1;
}
esle
{
r=0;
}
retrue r;
}本回答被网友采纳
第2个回答  2013-06-05
static void Main(string[] args)
{
for (int i = 11; i < 99999; i++)
{
if (find(i.ToString()) && find((i * i).ToString()) && find((i * i * i).ToString()))
{
Console.WriteLine(i);
}
}
Console.Read();
}

static bool find(string value)
{
int i= 0,j=value.Length;
for (i = 0; i < j - 1; i++, j--) {
if (value[i] != value[j-1]) {
return false;
}
}
return true;
}
相似回答