华为机试题:判断自守数

时间:2020-12-07 18:52:45

描述: 

题目标题:

  • 自守数

  • 如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数。

  • 显然,5和6是一位自守数(5x5=25 6x6=36),25x25=625 76x76=5776,所以25和76是两位自守数。

  •  

详细描述:

  • 接口说明

原型:

         Public static boolean isAutoMorphicNum( int num)

输入参数:

         num  需要判断的数

输出参数(指针指向的内存区域保证有效):

         

返回值:

         true  是自守数

         false 不是自守数

 

 

涉及知识点:

JAVA语言基础:数字处理

 

 

 

我这个代码。三个测试用例,对了2个,我也不知道哪里的问题,求大神指导。

package huawei;


public final class Demo {
/*
Description
判断是否是自守数
Prototype
public static boolean isAutoMorphicNum(int num)
Input Param

num 需要判断的数
Output Param

Return Value
true 是自守数
false 不是自守数
*/
public static boolean isAutoMorphicNum(int num)
{
/*在这里实现功能*/
String s1 = num + "";

int temp = num % 256;
String s2 = temp * temp + "";


int i1 = s1.length() - 1, i2 = s2.length() - 1;
for(; i1 >= 0 && i2 >= 0; i1--, i2--)
{
if(s1.charAt(i1) != s2.charAt(i2))
{
return false;
}
}

if(i1 < 0)
{
return true;
}

return false;
}
}