IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Краб Аристарх и очень длинная арифметика, Java
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


Добрый День!!!
помогите Пожалуйста доделать задачу:
Краб Аристарх очень любит язык программирования Java и очень большие числа. Но ему иногда бывает лень выполнять с ними арифметические операции, поэтому он просит вас помочь.
Входные данные
На первых двух строках даны целые числа A и B (0 ≤ A, B ≤ ∞).
На третьей строке дан символ +, -, * или /.
Выходные данные
Целое число, результат требуемой арифметической операции.
Пример 1
input.txt:
2
2
+
output.txt
4
Мой код:
class Zadacha {
BigInteger A;
BigInteger B;
String line;

void readData() throws IOException {
FileReader fin = new FileReader("input.txt");
Scanner scr = new Scanner(fin);
A = scr.nextBigInteger();
B = scr.nextBigInteger();
line = scr.nextLine();
fin.close();
}

void SolutionofTask() throws IOException{
BigInteger c ;
for (int i = 0; i <= line.length(); ) {
if (line.charAt(1) == '+'){ c = A.add(B);}
if (line.charAt(1) == '-'){ c = A.subtract(B);}
if (line.charAt(1) == '*'){ c = A.multiply(B);}
if (line.charAt(1) == '/'){ c = A.divide(B);}
}

PrintWriter fout = new PrintWriter("output.txt");
fout.print©;
fout.flush();
fout.close();
}
}

Почему-то не хочет считывать символы арифметических операций
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


A = scr.nextBigInteger();
B = scr.nextBigInteger();
scr.nextLine(); // Переходим на новую строку после чтения BigInteger
line = scr.nextLine(); // и уже с начала новой строки читаем операцию...


Внимательнее читай описания методов.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


Цитата(IUnknown @ 9.06.2011 14:19) *

A = scr.nextBigInteger();
B = scr.nextBigInteger();
scr.nextLine(); // Переходим на новую строку после чтения BigInteger
line = scr.nextLine(); // и уже с начала новой строки читаем операцию...


Внимательнее читай описания методов.

исправил.. запустил.. теперь выдаёт ошибку:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1

может тут как-то по другому надо считывать и использовать арифметические знаки?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Может, наконец, что-нибудь про Java прочитаешь? Книгу какую, например? Тысячу раз говорили тебе, что индексация начинается с 0, а не с 1 - ты опять ту же ошибку делаешь...

Зачем тебе здесь цикл вообще - непонятно. Просто switch(line.charAt(0)), и проверяй знаки...

Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 0:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name