Эта программа решает данную задачу на языке C++. Она содержит функцию isDivisibleBy11, которая проверяет, делится ли число на 11, и функцию main, которая запрашивает у пользователя число m и выводит все числа, не превосходящие m, которые делятся на 11.
// Подключение необходимых библиотек.
#include <iostream>
#include <cmath>
// Функция для вычисления суммы цифр на нечетных позициях числа.
int calculateSumOfOddDigits(int num) {
int sum = 0;
int position = 1;
while(num > 0) {
int n = num % 10;
if (position % 2 != 0) {
sum += n;
}
num /= 10;
++position;
}
return sum;
}
// Функция для определения, можно ли число поделить на 11.
bool isDivisible(int num) {
int sumOddPositions = calculateSumOfOddDigits(num);
int sumEvenPositions = 0;
int position = 1;
while(num > 0) {
int n = num % 10;
if (position % 2 == 0) {
sumEvenPositions += n;
}
num /= 10;
++position;
}
return std::abs(sumOddPositions - sumEvenPositions) % 11 == 0;
}
// Главная функция.
int main() {
int m;
std::cout << "M: ";
std::cin >> m;
std::cout << "Числа, кратные 11 и удовлетворяющие условию:" << std::endl;
for (int n = 1; n <= m; ++n) {
if (isDivisible(n)) {
std::cout << n << std::endl;
}
}
return 0;
}
Пример:M: 72
Числа, кратные 11 и удовлетворяющие условию:
11
22
33
44
55
66