Сколько столбцов в матрице не содержит ни одной степени двойки? - PascalABC.NET
Формулировка задачи:
Сколько столбцов в матрице не содержит ни одной степени двойки?
Решение задачи без использования процедур и функций.
Решение задачи: «Сколько столбцов в матрице не содержит ни одной степени двойки?»
textual
Листинг программы
- begin
- var Rows := ReadLnInteger('Строк =');
- var Cols := ReadLnInteger('Столбцов =');
- var A : array [,] of Integer;
- SetLength(A, Rows, Cols);
- var D := 0;
- for var Row := 0 to Rows-1 do
- for var Col := 0 to Cols-1 do
- begin
- A[Row, Col] := ReadLnInteger('A[' + (Row+1).ToString + ',' + (Col+1).ToString + '] =');
- D := max(D, A[Row, Col].ToString.Length + 1);
- end;
- WriteLn('Введена матрица:');
- for var Row := 0 to Rows-1 do
- begin
- for var Col := 0 to Cols-1 do
- Write(A[Row,Col]:D);
- WriteLn;
- end;
- var Count := 0;
- for var Col := 0 to Cols-1 do
- begin
- var Num := 0;
- for var Row := 0 to Rows-1 do
- begin
- var V := A[Row, Col];
- while Not Odd(V) do
- V := V shr 1;
- Num += (V = 1 ? 1 : 0);
- end;
- Count += (Num = 0 ? 1 : 0);
- end;
- WriteLn('Столбцов, которые не содержат ни одной степени двойки ', Count);
- end.
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Ввод количества строк и столбцов матрицы.
- Создание двумерного массива A для хранения элементов матрицы.
- Ввод всех элементов матрицы.
- Нахождение максимальной длины строки элемента матрицы (для последующего форматирования вывода).
- Вывод матрицы.
- Инициализация переменной Count, которая будет подсчитывать количество столбцов без степеней двойки.
- Проход по всем столбцам матрицы.
- Для каждого столбца проход по всем строкам и подсчет количества элементов, кратных двум (это и будут степени двойки).
- Увеличение переменной Count на единицу, если количество кратных двум равно нулю.
- Вывод количества столбцов без степеней двойки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д