Помощь - Поиск - Пользователи - Календарь
Полная версия: Краб Аристарх и очень длинная арифметика
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
Shashlyk
Добрый День!!!
помогите Пожалуйста доделать задачу:
Краб Аристарх очень любит язык программирования 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();
}
}

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


Внимательнее читай описания методов.
Shashlyk
Цитата(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

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

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