招引信用卡中心第三题憋破脑袋想出来的答案
招引信用卡中心,第三题,笔试没做,现在想出来的代码,不知道对不对
修改:之前的代码有问题,索引和权值不对
import java.util.ArrayList;
import java.util.Scanner;
public class Test1 {
private static int mod = (int)1e9 + 7;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int n = str.length();
ArrayList<Integer> arrayList = new ArrayList<>();
int con = 0, remain = 1;
for (int i = 0; i < n; i++) {
int reverse = n - i - 1;
if(str.charAt(reverse) == '?') {
arrayList.add(remain);
}else {
con += (str.charAt(reverse) - '0') * remain; con %= 13;
}
remain = remain * 10 % 13;
}
int m = arrayList.size();
int[][] dp = new int[m + 1][13];
dp[0][con] = 1;
for (int i = 1; i <= m; i++) {
for (int j = 0; j < 10; j++) {
for (int k = 0; k < 13; k++) {
int idx = (k + j * arrayList.get(i - 1)) % 13;
dp[i][idx] += dp[i - 1][k];
dp[i][idx] %= mod;
}
}
}
System.out.println(dp[m][5]);
}
}
#笔试题目##招银网络##Java##秋招##笔经#