2016-03-04 4 views
-4

Я пытаюсь реализовать логику BigInteger в Java. Я получаю ввод в виде String и конвертирую и сохраняю его в массив int.Хранение нескольких нулей в массиве int

Теперь, выполняя добавление двух целых массивов, возникает проблема.

Например:

int first_array[0]=999999999 
int Second_array[0]=1; 

я получить значение, как сложение 1000000000, где я буду брать 10 цифр, как уноса.

carry_over=(first_array[0]+Second_array[0])/1000000000 ;//1 

add_array[0]=(first_array[0]+Second_array[0])%1000000000 ;//000000000 

Мои ожидания для add_array[0] является 000000000, но ее сохранение как 0. То есть, это хранить его в качестве одного нуля вместо девяти нулей.

Есть ли способ решить эту проблему?

+5

000000000 и 0 - одно и то же значение, у вас есть массив int, а не строковый массив. –

+2

Как вы планируете хранить базовые позиции? Для основания 10 у вас есть один, десятки, сотни, тысячи и т. Д. ... как вы планируете представить это здесь? (Эта концепция заставит вас покинуть ваше замешательство.) – Makoto

+0

@ Jean-FrançoisSavard Я знаю это, так что только я прошу все равно исправить его – Yuvaraj

ответ

0

Это то же самое 000000000, что и 0. Результат массивов должен быть таким же. Единственная проблема, с которой вы столкнулись, - это напечатать номер в виде строки, переопределяющей метод toString() в классе «BigInteger», поэтому для каждой позиции он вызывает String.format («% 09d% n», n). Тогда вы будете представлять любое число в п с 9 цифрами

0

Не следует путать форматирования с данными.

000000000 такое же, как 0.

Ведущих нулей может вызвать проблемы, как ведущего нуля означает восьмеричное буквальным.

Смежные вопросы