• Предмет: Информатика
  • Автор: ArtemGais4642
  • Вопрос задан 3 месяца назад

100 баллов программирование!
Дано целое положительное число N. Какое минимальное количество цифр нужно вычеркнуть

из N, чтобы оставшиеся число делилось на 3 без остатка?

c++

пример ввод-вывод

12 0

148 1

10 1

В первом примере N = 12. 12 без остатка делится на 3, поэтому ответ будет 0.

Во втором примере N = 148. Если вычеркнуть цифру 4, то мы получим число 18, который без

остатка делится на 3. Поэтому в этом тесте ответ 1.

Ответы

Ответ дал: kwickie6
0

#include <iostream>

#include <vector>

int minDigitsToRemove(int N) {

   std::vector<int> digits;

   while (N > 0) {

       digits.push_back(N % 10);

       N /= 10;

   }

   int sum = 0;

   for (int digit : digits) {

       sum += digit;

   }

   int remainder = sum % 3;

   int countToRemove = 0;

   for (int digit : digits) {

       if ((sum - digit) % 3 == remainder) {

           return countToRemove;

       }

       countToRemove++;

   }

   return -1;

}

int main() {

   int N;

   std::cout << "Введите целое положительное число N: ";

   std::cin >> N;

   int result = minDigitsToRemove(N);

   std::cout << result << std::endl;

   return 0;

}

Вас заинтересует