Округление чисел

  • 10
  • Недоступна
Считать с консоли 2 имени файла. Первый файл содержит вещественные(дробные) числа, разделенные пробелом. Например, 3.1415. Округлить числа до целых и записать через пробел во второй файл. Закрыть потоки. Принцип округления: 3.49 => 3 3.50 => 4 3.51 => 4 -3.49 => -3 -3.50 => -3 -3.51 => -4
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (170)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Sergey Vilkov19 уровень, Москва
пятница, 10:50
Странно но валидатор не принял (int) , но принял Math.round. Тестовый файл записывал одинково.
Евгений20 уровень, Днепр
2 октября, 18:26
Решил с первого раза, но ощущение, что говнокод ( 1. считал файл в массив байт 2. массив байт переписал в массив стрингов используя сплит по пробелу 3. этот массив сложил в одну строчку, прогоняя каждый элемент через Math.round(Float.valueOf) + " " 4. строчку записал в файл через .getBytes() п.с. как правильно, массив байт или байтов??
LuneFox20 уровень, Москва
24 сентября, 14:17
Очередного монстра упаковал в 12 строчек)
Евгений24 уровень, Караганда
27 сентября, 10:39
Браво! Не уловил правда, зачем переменная count, вроде не используется
LuneFox20 уровень, Москва
27 сентября, 19:58
IDEA ругалась: "Ахтунг! Результат вашего метода никуда не сохраняется!". Я решил её немного успокоить таким образом. А по сути да, не используется. Но если бы я захотел что-то записать в файл, то пригодилась бы.
RexyComandante20 уровень, Минск
18 сентября, 19:01
Хорошая задача, пришлось поломать голову как решить.
gangmaster19 уровень
4 сентября, 12:17
Не мог понять, почему валидатор не пропускает мое решение, а все из за того, что в первом файле у меня были цыфры в столбик, а не Первый файл содержит вещественные(дробные) числа, разделенные пробелом - то есть это одна строка ;) Как только понял свой косяк, решил без проблем.
Павел Минеев41 уровень, Челябинск
27 августа, 16:39
Простая задача - никаких боданий с валидатором. 1. Считал файл BufferedReader-ом в одну строку.
reader = new BufferedReader(new FileReader(fileName1));
String num = reader.readLine();
2. Разбил строку на массив строк методом split(" ")
String[] nums = num.split(" ");
3. Совместил парсинг, округление и запись одним циклом:
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName2));
for (int i = 0; i < nums.length; i++) {
        writer.write(Math.round(Double.parseDouble(nums[i]))+" ");
}
4. Закрыл потоки.
VDT20 уровень, Екатеринбург
18 сентября, 08:06
Говорила мне мама "Учи синтаксис!", "Не забывай про алгоритмы".... Как у меня из головы "split" выскочил ... хз
Константин Петров24 уровень, Москва
26 августа, 10:00
Может кому пригодится ленивый способ в борьбе с валидатором ;-) 1. Прочитал файл в массив byte[] и создал строку new String(byte[]); 2. Строку разбил в массив подстрок String.spit(" "); 3. Каждый элемент массива подстрок преобразовал в Double, округлил Math.round и обратно в String 4. Использовал очень приятный StringJoiner чтобы собрать все в одну строку через пробел, которую и записал в файл
Ilya Ivanov30 уровень, Казань
17 августа, 21:30
Все меньше и меньше людей решают задачи
Dmitry23 уровень
14 августа, 04:52
валидатор для данной задачи неправильно работает! принимает решение, когда в итоговый файл выводится 3 4 4 -3 -4 -4 (т.е. -3.50 округляется до - 4, а не до -3 как написано в условии!!!). И всё бы ничего, если бы не было потрачено на решение 3 часа! Зато со сканером научился работать
Artem Boyarshinov20 уровень, Москва
четверг, 07:10
Ничего подобного, у меня валидатор принял при 3 4 4 -3 -3 -4
Rustam24 уровень, Казань
10 августа, 17:34
Сразу писать числа в файл не получиться, нужно сначала сформировать строку, а затем
"последовательность чисел".getBytes()
писать в файл.