Обсуждение:Реализации алгоритмов/Подсчёт счастливых билетов

Материал из Викиучебника — открытых книг для открытого мира
Перейти к навигации Перейти к поиску

int main() {

   const int min = 0;
   const int max = 9999999;
   const int maxDigitsCount = 7;
   int happyTicketCount = 0;
   for (int i = min; i <= max; ++i) {
       int curNum = i;
       int diff = 0;
       for (int j = 0; j < maxDigitsCount; ++j) {
           int curDigit = curNum % 10;
           curNum = curNum / 10;
           if (!((maxDigitsCount % 2) && (j == maxDigitsCount / 2))) {
               (j < maxDigitsCount / 2) ? (diff += curDigit) : (diff -= curDigit);
           }
           if (!curNum) { break; }
       }
       if (!diff) { ++happyTicketCount; }
   }
   std::cout << happyTicketCount;
   return 0;

}