Дважды подряд записать трехзначное число — это значит умножить его на 1001. Умножив на 1000, мы получаем исходное число с тремя нулями. Добавляем к полученному числу еще один раз исходное число. Получается число, в записи которого дважды повторяются цифры исходного числа.
Последовательно разделить на 13, 11 и 7 – значит разделить число на произведение 13 * 11* 7, которое равно 1001.
Получается, что мы число сначала умножаем на 1001, а после делим на 1001. Естетственно, у нас получится исходное число:
(n * 1001) / (13 * 11 * 7) = (n * 1001) / 1001 = n.
Двумерный динамический массив задается пользователем. Программа находит сумму элементов всех нечетных строк.
Если требовался иной алгоритм, сообщите об этом.
Код программы приведен на языке C++.
Тестирование проводилось в среде разработки Visual Studio 2017, v.15.7.5.
int main()
{
setlocale(LC_ALL, "Russian");
int N, M, i, j, SumOddRows = 0;
cout << "Введите кол-во строк матрицы:";
cin >> N;
cout << "Введите колво столбцов матрицы: ";
cin >> M;
int** arr = new int*[N];
cout << endl;
cout << "Заполните матрицу " << N << 'х' << M << endl;
for (i = 0; i < N; i++)
arr[i] = new int[M];
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
cout << "Введите число: ";
cin >> arr[i][j];
}
}
cout << "Исходная матрица: " << endl;
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
if (i % 2 == 0)
SumOddRows += arr[i][j];
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << "Сумма элементов в неч. строках: " << SumOddRows << endl;
system("pause");
return 0;
}