1. В приведенном коде ошибка. Не хватает ";" в третьей строке снизу. 2. Немного изменим ваш код и получим искомое значение x Искомое число х = 16293
var x, y, a, b, k: integer;
begin k:=10000; repeat x:=k; a := 0; b := 0; y := 1; while x > 0 do begin if (x mod 10) mod 2 = 0 then a := a * 10 + x mod 10 else begin y := y * 10; b := b * 10 + x mod 10 end; x := x div 10 end; a := a * y + b; k := k + 1; until a = 26391; writeln(a:8, k-1:8); end.
В C++ #include <iostream> #include <iomanip> #include <ctime> int main() { using namespace std;
const int N = 5; const int M = 6;
int A[N][M];
//Как-нибудь заполняем массив srand(time(0)); for (int i = 0; i < N; ++i) for (int j = 0; j < M; ++j) A[i][j] = rand() % (N * M) + 1; for (int i = 0; i < N; ++i) { for (int j = 0; j < M; ++j) cout << setw(4) << A[i][j]; cout << endl; }
//Подсчитываем сумму всех элементов массива int sum = 0;
for (int i = 0; i < N; ++i) for (int j = 0; j < M; ++j) sum += A[i][j];
//Вычитаем из полученной суммы повторяющиеся элементы for (int i = 0; i < N; ++i) for (int j = 0; j < M; ++j) { bool flag = false; for (int i1 = 0; i1 < N; ++i1) { for (int j1 = 0; j1 < M; ++j1) if (!(i == i1 && j == j1)) if (A[i][j] == A[i1][j1]) { sum -= A[i][j]; flag = true; break; } if (flag) break; } }
1638400 пикселей = 1,6384 мегапикселей.
Округляя до сотых, получаем 1,64 Мпикс.