На вход алгоритма подаётся натуральное число n. алгоритм строит по нему новое число r следующим образом. 1. строится двоичная запись числа n. 2. к этой записи дописываются справа ещё два разряда по следующему правилу: если n чётное, в конец числа (справа) дописывается сначала ноль, а затем единица. в противном случае, справа дописывается сначала единица, а затем ноль. например, двоичная запись 100 числа 4 будет преобразована в 10001, а двоичная запись 111 числа 7 будет преобразована в 1110. полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа n) является двоичной записью числа r – результата работы данного алгоритма. укажите минимальное число r, которое меньше 128 и может являться результатом работы данного алгоритма. в ответе это число запишите в десятичной системе счисления.
Как я понял,нужно было вывести главную и побочную диагонали.
Ошибки:
пропущены скобки,как обычные так и фигурные;пропущены знаки ";","<" и т.д.;Легче было заново написать чем исправлять.
Вот мой код:
import java.util.Scanner;
public class Main{
public static void main (String [] args){
Scanner in = new Scanner (System.in);
int n = in.nextInt();
int mass[][] = new int [n][n];
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
mass[i][j]=in.nextInt();
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if((i==j) || j==(n-1-i)){
System.out.print("x");
}else System.out.print(mass[i][j]);
}
System.out.println();
}
in.close();
}
}
Объяснение:
Краткий алгоритм программы:Импортируем Scanner;Объявляем переменную in типа Scanner,для ввода;Объявляем переменную n типа int,для хранения размера массива;Объявляем две переменные i и j типа int,для циклов;В первом "двойном" цикле мы заполняем массив числами;Во втором "дойном" цикле мы мы сравниваем индексы массива и выводим результат;Закрываем Scanner;ответ:Для начала в onCreate() уберите эту строку:
chatContainer.clear()
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
lateinit var adapter: RecyclerChatAdapter
Дальше как только ваш список заполнен вы это проверяете в цикле и инициализируете адаптер:
when {
documentSnapshot != null -> {
for (dc in documentSnapshot.documentChanges) {
when (dc.type) {
DocumentChange.Type.ADDED -> {
val chat = dc.document.toObject(Chat::class.java)
chatContainer.add(chat) // Добавление данных в Recycler
if(chatContainer.size == documentSnapshot.documentChanges)
{
adapter = RecyclerChatAdapter(chatContainer)
}
}
}
}
}
}
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
for (i in chatContainer) {
adapter.notifyDataSetChanged()
}