/**
* Q:求 int 范围内的同构数(0 ~ 2^31 - 1)
* 同构数是会出现在它的平方的右边的数,如5×5=25,6×6=36。
*
* Created by sfwn on 15-9-8.
*/
public class test {
public static void main(String[] args) {
/**
* 循环,1~Integer.MAX_VALUE
* sq : i ^ 2 对应的字符串
* ii : i 对应的字符串
* 利用 String.endsWith(String suffix) 完成后缀的比对
* 缺点:效率比较低
*/
String sq = "";
String ii = "";
for(long i = 1; i < Integer.MAX_VALUE - 1; i++) {
sq = String.valueOf(i * i);
ii = String.valueOf(i);
if (sq.endsWith(ii)) {
System.out.println(ii + " " + sq);
}
}
}
}
同构数的Java实现
最新推荐文章于 2023-03-16 19:44:32 发布