Pagini recente » Cod sursa (job #699588) | Cod sursa (job #662463) | Cod sursa (job #2727441) | Cod sursa (job #1647977) | Cod sursa (job #2347884)
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class Main {
private static final String IN_FILE = "pascal.in";
private static final String OUT_FILE = "pascal.out";
public static void main(String[] args) {
try {
final String inData = readIn();
final String[] inDataParts = inData.split(" ");
if (inDataParts.length < 2) {
throw new IllegalArgumentException(
"Expected 2 arguments separated by space on the first line. Found only " + inDataParts.length);
}
final Integer rowNumber = Integer.parseInt(inDataParts[0]);
final Integer divisibleToThis = Integer.parseInt(inDataParts[1]);
final int count = generatePascalRow(rowNumber, divisibleToThis);
writeResult(count);
} catch (Exception e) {
e.printStackTrace();
System.err.println("Error during execution");
}
}
private static int generatePascalRow(Integer rowNumber, Integer divisibleBy) {
int count = 0;
int prevElement = 1;
for (int i = 0; i < rowNumber; i++) {
final int currentElement = prevElement * (rowNumber - i) / (i + 1);
prevElement = currentElement;
if (currentElement % divisibleBy == 0) {
count++;
}
}
return count;
}
private static String readIn() throws IOException, URISyntaxException {
final Path p = Paths.get(IN_FILE);
final List<String> lines = Files.readAllLines(p);
if (lines.size() == 0) {
throw new IllegalArgumentException("Empty file");
}
return lines.get(0);
}
public static void writeResult(int count) throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter(OUT_FILE));
writer.write(Integer.toString(count));
writer.close();
}
}