吸血鬼数字

由“吸血鬼数字”引发的关于算法的思考

风流意气都作罢 提交于 2019-12-04 18:53:27
今天看Thing in java的第四章有个小练习是找出4 位数的所有 吸血鬼 数字 ( 一个4位数字,可以拆分2个2位数数字的乘积,顺序不限。)自己写了个递归的实现,虽然是正确的,但感觉不满意,效率太低了。大二暑假时也是努力学了了3个多月的算法,什么动态规划,剪枝搜索,图论,ac自动机也是随手拿来,也是作为学校的一个队员拿到省程序设计大赛的三等奖。后来学javaee,android很少用到算法渐渐淡忘,到现在大三都快忘光了。网上搜了下,找到了吸血鬼数字的一个高效率的实现 import java.util.Arrays; public class VampireNum { public static void main(String[] arg) { String[] ar_str1, ar_str2; int sum = 0; int from; int to; int i_val; int count = 0; // 对i和j的双重循环,用到剪枝 for (int i = 10; i < 100; i++) { // j=i+1避免重复 from = Math.max(1000 / i, i + 1); to = Math.min(10000 / i, 100); for (int j = from; j < to; j++) { i_val = i * j; if (i