public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream fis = new FileInputStream(reader.readLine());
int min;
int a;
if(fis.available()>0){
min = fis.read();
}
else return;
while (fis.available()>0){
if(( a = fis.read()) < min){
min = a;
}
}
fis.close();
reader.close();
System.out.println(min);
}
}
Для решения задачи переменной min сразу присвоил значение первого бита, если такой имеется.
В правильном решении, которое предлагают разработчики JavaRush переменной min присваивают значение 255. Почему именно так?
И как можно упростить мой код? Выглядит отвратительно даже для меня. Александр
20 уровень
Как упростить мой код?
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Coooll System Engineer
12 августа 2021, 13:27
метод read() читает по одному байту, который может принимать значение от 0 до 255 и приводит его к int
0
Coooll System Engineer
12 августа 2021, 13:22
переменной min присваивают значение 255, потому что в одном байте может храниться число от 0 до 255 и мы сразу задаем максимально возможное значение
0
Александр
12 августа 2021, 23:53
если файл пустой, 255 будет минимальное? это ведь не так?
0
Coooll System Engineer
12 августа 2021, 13:19
решал так
0
Coooll System Engineer
12 августа 2021, 13:19
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream inputStream = new FileInputStream(reader.readLine());
int minByte = inputStream.read();
while(inputStream.available() > 0){
int data = inputStream.read();
if (data < minByte) minByte = data;
}
System.out.println(minByte);
inputStream.close();
0