Поскольку это домашнее задание, я дам несколько советов.
Вы можете подойти к нему так же, как и в своем примере, используя строки для хранения чисел любой длины и реализуя:
- добавить одно число к другому
- умножьте в качестве примера, добавив нули и вызвав метод сложения за шаг (поэтому для умножения на 20 добавьте "0" и добавьте это число дважды
Метод сложения, который вы можете создать путем извлечения char [] из строк, выделения результата char [], который на 1 длиннее самого длинного и добавления, как вы делали бы на бумаге с конца до начала обоих массивов .
Конечный результат не будет наилучшим решением, но легко показать, что он верен и будет обрабатывать числа любой длины (если они будут соответствовать строке Java).
Обновление
Хорошо, если вы решили добавить два числа, вы можете:
- реализовать умножение на 10
- реализовать умножение путем повторного сложения, как в вашем примере
или
- реализовать умножение на 2 (сдвиг влево)
- реализовать двоичное умножение по той же концепции, только на этот раз x 2 и добавить один раз
, чтобы проиллюстрировать последнее,
13
5 x
----
13 x 1
26 x 0
52 x 1
---- +
65
обратите внимание, что 1 0 1 - это биты в числе (5), на которое вы умножаетесь, и 26 = 13 x 2, 52 = 26 x 2. Вы поняли: -)