program test;
var i: integer;
begin
for i:=11 to 99 do
if i=(i+i-1) div 10 + (i+i-1) mod 10 * 10 then
writeln (i-1,' ',i)
end.
36 и 37
Объяснение:
for i:=11 to 99 do - перебираем двузначные числа
(i+i-1) - вычисляем сумму двух последовательных двузначных чисел
(i+i-1) div 10 - получаем первую цифру получившейся суммы
(i+i-1) mod 10 - получаем вторую цифру получившейся суммы
(i+i-1) mod 10 * 10 - чтобы переставить цифры в сумме умножаем последнюю цифру на 10 (из единиц делаем десятки)
(i+i-1) div 10 + (i+i-1) mod 10 * 10 - переставляем цифры в получившейся сумме
if i=(i+i-1) div 10 + (i+i-1) mod 10 * 10 then - сравниваем большее из двузначных чисел с числом получившемся после перестановки цифр суммы
Код:
program test;
var i: integer;
begin
for i:=11 to 99 do
if i=(i+i-1) div 10 + (i+i-1) mod 10 * 10 then
writeln (i-1,' ',i)
end.
36 и 37
Объяснение:
for i:=11 to 99 do - перебираем двузначные числа
(i+i-1) - вычисляем сумму двух последовательных двузначных чисел
(i+i-1) div 10 - получаем первую цифру получившейся суммы
(i+i-1) mod 10 - получаем вторую цифру получившейся суммы
(i+i-1) mod 10 * 10 - чтобы переставить цифры в сумме умножаем последнюю цифру на 10 (из единиц делаем десятки)
(i+i-1) div 10 + (i+i-1) mod 10 * 10 - переставляем цифры в получившейся сумме
if i=(i+i-1) div 10 + (i+i-1) mod 10 * 10 then - сравниваем большее из двузначных чисел с числом получившемся после перестановки цифр суммы
Код:
#include <fstream>#include <vector>#include <numeric>int main() { std::ifstream cin("input.txt"); std::ofstream cout("output.txt"); int N, K; cin >> N >> K; std::vector<int> buffer(N); for (int i = 0; i < K; ++i) { for (int j = 0; j < N; ++j) { cin >> buffer[j]; } // Зануляем найденные min и max *(std::min_element(buffer.begin(), buffer.end())) = 0; *(std::max_element(buffer.begin(), buffer.end())) = 0; // Суммируем cout << std::accumulate(buffer.begin(), buffer.end(), 0) << "\n"; } return 0;}