求一千万以下的自守数 如 5*5=25 25*25=625 如果有n由k位数构成 那么n的平方的末尾k位数必须和n相等 并且变量只能用证书
/**
* 思路:n的平方对整的x次幂取余结果是n,则满足条件
* 例5*5=2525%10=5
* 625*625=390625 625%(10*10*10)=625
* @author yx
*
* 2017-9-25
*/
public class Test {
public static void main(String[] args) {
for (int j = 0;
j < 10000000;
j++) {
for (int i = 1;
i < String.valueOf(j).length();
i++) {
if (Math.pow(j % (Math.pow(10, i)), 2) == j) {
System.out.println(j + "," + (int) (j % (Math.pow(10, i))));
break;
}
}
}
}
}
结果:
【面试|一千万以内的自守数】25,5
36,6
625,25
5776,76
141376,376
390625,625
推荐阅读
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- linux笔记|linux 常用命令汇总(面向面试)
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 面试|我经历的IT公司面试及离职感受(转)
- android-面试|我经历的IT公司面试及离职感受
- Java|一个月内面了30家企业,不断对比薪资,我从18K变成了38K
- vue|Vue面试常用详细总结
- java人生|35K 入职华为Java开发那天,我哭了(这 5 个月做的一切都值了)
- Android|年后备战金三银四(Android面试吃透这一篇就没有拿不到的offer......)
- java|后悔没有早点遇到它 , 直接从 12K 涨到了 30K