Помогите, пожалуйста!!!Назовём число новогодним, если его запись не содержит цифры 0, а сумма всех цифр этого числа равна 8. Найти сумму всех новогодних чисел
В наихудшем случае, последнее новогоднее число - 11111111. #include bool isNewYearNumber(int n); int sumDigits(int num); bool hasZero(int n); int main() { const int LASTNEWYEARNUMBER = 11111111; long long sum = 0; for(int i = 0; i <= LASTNEWYEARNUMBER; i++)<br> if ( isNewYearNumber(i) ) sum += i; std::cout << "Сумма всех новогодних чисел: " << sum << '\n';<br> return 0; } bool isNewYearNumber(int n) { if ( !( hasZero(n) ) && sumDigits(n) == 8) return true; else return false; } int sumDigits(int num) { int sum = 0; while ( num > 0 ) { sum += num % 10; num /= 10; } return sum; } bool hasZero(int n) { if (n < 0) n = -1 * n; if (n % 10 == 0) return true; else if (n / 10 > 0) hasZero(n / 10); else return false; }
Ответ 11111111?
Ответ: 26885600459438
Должны выполняться оба условия, а не хотя бы одно из них. В этой строке ошибка : if ( !( hasZero(n) ) || sumDigits(n) == 8), меняем на &&.