public class Exercise2_10 {
public int[] A = {1,5,3};
public int[] B = {1,6,5};
public int[] result = new int[6];
public static void main(String[] args) {
Exercise2_10 obj = new Exercise2_10();
obj.addTwoNumbers(2);
System.out.println();
obj.multiplyTwoNumbers(2);
}
// O(N)
public void addTwoNumbers(int N) {
int carry = 0;
for (int i = N; i >= 0; i--) {
int x = (A[i] + B[i]) + carry;
carry = x / 10;
result[i] = x % 10;
}
for (int i = 0; i <= N; i++) {
System.out.print(result[i]);
}
}
// O(N^2)
public void multiplyTwoNumbers(int N) {
for (int i = N; i >= 0; i--) {
for (int j = N; j >= 0; j--) {
int x = A[j] * B[i];
result[i + j - 1] += x / 10; // carry
result[i + j] += x % 10;
if (result[i + j] >= 10) {
result[i + j + 1] += result[i + j] / 10;
result[i + j] %= 10;
}
}
}
for (int i = 0; i <= result.length - 1; i++) {
System.out.print(result[i]);
}
}
}Ivan Zelenkov
28 уровень
Получился первый метод со сложением(имитирует то как мы складываем в столбик), но с умножением вообще запутался. Помогите решить пожалуйста второй метод. При умножении должно получиться 25 245
Новый
Комментарии
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
У этой страницы еще нет ни одного комментария