Pagini recente » Cod sursa (job #1243280) | Cod sursa (job #2109604) | Cod sursa (job #2481269) | Cod sursa (job #311979) | Cod sursa (job #2347830)
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[] row = generatePascalRow(rowNumber);
int countDivisibleBy2 = 0;
for (Integer integer : row) {
if (integer % divisibleToThis == 0) {
countDivisibleBy2++;
}
}
writeResult(countDivisibleBy2);
} catch (Exception e) {
e.printStackTrace();
System.err.println("Error during execution");
}
}
private static int[] generatePascalRow(Integer rowNumber) {
int[] results = new int[] { 1 };
for (int i = 0; i < rowNumber; i++) {
int[] temp = new int[results.length + 1];
temp[0] = 1;
temp[temp.length - 1] = 1;
for (int j = 1; j < temp.length - 1; j++) {
temp[j] = results[j - 1] + results[j];
}
results = temp;
}
return results;
}
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();
}
}