Сколько столбцов в матрице не содержит ни одной степени двойки? - 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 на единицу, если количество кратных двум равно нулю.
- Вывод количества столбцов без степеней двойки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д