package com.javarush.task.pro.task15.task1504;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Scanner;
/*
Перепутанные байты
*/
public class Solution {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in);
var inputStream = Files.newInputStream(Paths.get(scanner.nextLine()));
var outputStream = Files.newOutputStream(Paths.get(scanner.nextLine()))
) {
byte[] bytesIn = inputStream.readAllBytes();
byte[] bytesOut = new byte[bytesIn.length];
for (int i = 0; i < bytesIn.length; i += 2) {
if (i < bytesIn.length - 1) {
bytesOut[i] = bytesIn[i + 1];
bytesOut[i + 1] = bytesIn[i];
} else {
bytesOut[i] = bytesIn[i];
}
}
outputStream.write(bytesOut);
} catch (IOException e) {
System.out.println("Something went wrong : " + e);
}
}
}
hidden #2466399
22 уровень
Ругается IDE на ПРАВИЛЬНОЕ решение!
Решен
это так не работает. должна быть дополнительная промежуточная переменная.не знаю что там за решение но в коде ниже, давай представим, что bytesOut[i] = 4 bytesOut[i+1] = 5 чем будет равно? а где 4ка? потерялась) простым присвоением без промежуточной переменной нельзя это сделать. через сложение, вычитание да. можно, но никак через присвоение. если есть возможность, скинь мне это решение в ЛС пож. я посмотрю