Мне нужна помощь, я пытаюсь использовать Lattice Multiplication в Java для использования в классе BigInt, который мне приходится писать для класса.
Прямо сейчас у меня есть код, хранящий цифры, необходимые для добавления части алгоритма в двумерный массив.Оттуда, хотя я в растерянности относительно того, как сделать цикл, чтобы пройти через массив и добавить числа в том, что будет диагональ.
Например, вот номера тестов и т. Д .:
200 * 311 = 62200
Массив содержит:
6 0 0
2 0 0
2 0 0
6 - это (2,2) в массиве, а справа внизу - (0,0)
Мне нужно добавитьв диагонали, такой как (1,0) + (0,1) = 0
Вопрос в том, как мне это сделать, поскольку он не только движется вверх и влево по-разному, но и идетот 1 элемента до 2 элементов до 3 элементов, затем обратно в другую сторону, и, конечно, это будет тем больше, чем длиннее число.
Вот код, который у меня есть:
public int multiply(BigInt val){
int[] bigger;
int[] smaller;
int[] dStore;
int lengthMax = (val.getSize()+this.getSize()) - 1;
int first = 0;
int second = 0;
int[][] tempResult;
//Checks to see which is bigger and then adds that to bigger
if(val.getSize() >= this.getSize()){
bigger = val.getData();
smaller = this.getData();
dStore = new int[val.getSize()+this.getSize()];
}else{
bigger = this.getData();
smaller = val.getData();
dStore = new int[val.getSize()+this.getSize()];
}
tempResult = new int[smaller.length][bigger.length];
for(int i=0;i < smaller.length;i++){
for(int j = 0;j < bigger.length;j++){
tempResult[i][j] = smaller[i] * bigger[j];
}
}
** ниже приведен оператор возврата и т. Д.
Это может помочь как лучше объяснить решетку multi: Решетка Мульти Видео