Предмет: Информатика,
автор: Xrite
Помогите решить задачу на любом языке программирования.
Имеется ряд из N лампочек, которые пронумерованы от 1 до N. Изначально ни одна из лампочек не горит. Далее происходит K последовательных линейных инверсий этого ряда ламп. Под линейной инверсией понимается инверсия каждой P-й лампочки в ряде. Например, если P=3, то произойдет инверсия 3й, 6й, 9й и т.д. лампочек.Требуется определить: сколько горящих лампочек останется после реализации всех заданных линейных инверсий?
Входные данные:
В первой строке входного файла INPUT.TXT заданны числа N и K – число лампочек и число линейных инверсий. Вторая строка состоит из K целых чисел Pi, задающих период данных инверсий. (1 <= N <= 109, 1<=K<=100, 1 <= Pi <= 50)
Выходные данные
В выходной файл OUTPUT.TXT следует вывести ответ на задачу.
Ответы
Автор ответа:
0
package test;
import java.io.*;
public class Test { public static void main(String[] args) throws IOException { BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String line = in.readLine();
int N = Integer.parseInt(line);
boolean[] mas = new boolean[N];
String line2 = in.readLine();
int K = Integer.parseInt(line2);
for(int x = 0; x < N; x++){mas[x]=false;}
for(int z = 0; z < K; z++){String line1 = in.readLine();
int P = Integer.parseInt(line1);
for(int i = P - 1; i < N; i = i + P){if (mas[i] == false) {mas[i]=true;}
else mas[i] = false;
}
}
for(int l = 0; l < N; l++){if(mas[l]==true){System.out.println("+");}
else System.out.println("-"); } }}
import java.io.*;
public class Test { public static void main(String[] args) throws IOException { BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String line = in.readLine();
int N = Integer.parseInt(line);
boolean[] mas = new boolean[N];
String line2 = in.readLine();
int K = Integer.parseInt(line2);
for(int x = 0; x < N; x++){mas[x]=false;}
for(int z = 0; z < K; z++){String line1 = in.readLine();
int P = Integer.parseInt(line1);
for(int i = P - 1; i < N; i = i + P){if (mas[i] == false) {mas[i]=true;}
else mas[i] = false;
}
}
for(int l = 0; l < N; l++){if(mas[l]==true){System.out.println("+");}
else System.out.println("-"); } }}
Приложения:
Автор ответа:
0
https://www.dropbox.com/sm/create/%D0%9E%D0%B1%D1%89%D0%B5%D0%B5/code.txt Так будет лучше
Автор ответа:
0
Странно, сюда не помещается даже без переносов, только часть
Автор ответа:
0
Вот так, но это не понятно совсем =)
Похожие вопросы
Предмет: Английский язык,
автор: dianamahmutsina
Предмет: Геометрия,
автор: Pepoj3
Предмет: Математика,
автор: ilyabutov11
Предмет: Геометрия,
автор: agapi