Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 05.10.2011, 00:11   #1 (permalink)
Dimi
Новичок
 
Регистрация: 04.10.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Unhappy Java - умножение или суммирование n-е колличество больших целых чисел

Программа запускается с аргументами командной строки, аргументы эти любые целые числа и n-е колличество.
Мой код:
Код:
public static void main(String[] args)throws NumberFormatException{
        int i=0,a=0,b=1,convert;
        while(i<args.length){
            convert=Integer.parseInt(args[i]);
            a+= convert;
            b*= convert;
            i++;
        }
        System.out.print("Сумма: "+a+"\nПроизведение: "+b);
    }
}
Все работает нормально, вот только как умножать или суммировать числа которые выходят за диапазон стандартных типов. В данном случае это тип int, long тоже ограничен.
Dimi вне форума   Ответить с цитированием

Старый 05.10.2011, 00:11
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я думаю, что проблему решать легче есть набраться больше информации

Отключается интернет при скачивании больших файлов
Cоздать файл целых чисел
Умножение длинного числа на короткое (Турбо Паскаль).
Дан файл целых чисел.Delphi.
Отправка через интернет больших файлов
Паскаль. Создать массив целых чисел и записать его в файл

Старый 05.10.2011, 08:52   #2 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

тут нужно использовать длинную арифметику и числа представлять в виде строк.
или возможно есть уже готовая либа для этого
kreol вне форума   Ответить с цитированием
Старый 05.10.2011, 16:38   #3 (permalink)
Dimi
Новичок
 
Регистрация: 04.10.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Smile

Все я разобрался.
Вот рабочий код:
Код:
import java.math.BigInteger;
 
public class BigInt {
        
        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                  BigInteger sum = BigInteger.ZERO;
                  BigInteger mul = BigInteger.ONE;
                  for (int i=0;i<args.length;i++) {
                    BigInteger currentNumber = new BigInteger(args[i]);
                    sum = sum.add(currentNumber);
                    mul = mul.multiply(currentNumber);
                  }
                  System.out.println(sum);
                  System.out.println(mul);
        }
}
Dimi вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 17:44.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.