//数组A中给定可以使用的1~9的数,返回由A数组中的元素组成的小于n的最大数。 //例如A={1, 2, 4, 9},x=2533,返回2499 import java.util.*; public class test { public static int my(int[] A,String xx ,int i,int max) { if (i>xx.length()) {return 0;} //如果 i不等于0 以及 max == 之前的数 //就要继续做小于等于 //不然就后面全部填最大数 if (i == 0 ) { //获取当前要判断的数 int c = (int)xx.charAt(i)-'0'; for (int a :A) { if (a <= c && max <a) { max = a; } } i++; return max * (int) Math.pow(10, A.length - i) + my(A,xx,i,max); } if (i > 0 && max == xx.charAt(i-1)-'0') { max = 0; //获取当前要判断的数 int c = xx.charAt(i)-'0'; for (int a :A) { if (a <= c && max <a) { // 如果 max = a; } } i++; return max * (int) Math.pow(10, A.length - i) +my(A,xx,i,max); }else{ max = 0; int big = Arrays.stream(A).max().getAsInt(); for (int q=i;q<A.length;q++) { max = max + big*(int) Math.pow(10, q-i) ; } return max; } } public static void main(String[] args) { int[] A = {1,2,4,9}; int x = 2533; String xx = String.valueOf(x); System.out.println(my(A,xx,0,0)); } }
数组A中给定可以使用的1~9的数,返回由A数组中的元素组成的小于n的最大数。例如A={1, 2, 4, 9},x=2533,返回2499
最新推荐文章于 2023-07-22 15:17:10 发布
"这篇博客探讨了一种算法,该算法接受一个包含1到9的整数数组A和一个整数x,目标是找到由数组A中的元素组成的、小于x的最大数。代码实现了一个递归函数my,通过比较当前位数值与数组元素,动态选择合适的数组元素填充,以达到目标。例如,对于A={1,2,4,9}
摘要由CSDN通过智能技术生成