Middle+
N massivində A N müsbət ədədlərdən ibarət olan, i, j, k müxtəlif indekslər üçün, A[i] + A[j] + A[k] cəmində M rəqəmi ilə bitən üç fərqli indeks mövcuddurmu?
sobes.tech Süni İntellekt
AI-dan cavab
Задача: проверить, существуют ли три различных индекса i, j, k, такие что сумма A[i] + A[j] + A[k] заканчивается цифрой M.
Подход:
- Поскольку нас интересует только последняя цифра суммы, можно рассмотреть все элементы по модулю 10.
- Перебрать все тройки (i, j, k) и проверить, заканчивается ли сумма на M.
Пример решения на C#:
bool ExistsTripleWithSumEnding(int[] A, int M) {
int n = A.Length;
M = M % 10;
for (int i = 0; i < n - 2; i++) {
for (int j = i + 1; j < n - 1; j++) {
for (int k = j + 1; k < n; k++) {
int sumLastDigit = (A[i] + A[j] + A[k]) % 10;
if (sumLastDigit == M) {
return true;
}
}
}
}
return false;
}
Для оптимизации можно использовать частоты остатков по модулю 10 и проверять комбинации остатков, сумма которых по модулю 10 равна M, но базовый перебор подходит для небольших N.