Регистрация
Войти
Стать экспертом Правила
Информатика

Помогите, пожалуйста!!!Назовём число новогодним, если его запись не содержит цифры 0, а сумма всех цифр этого числа равна 8. Найти сумму всех новогодних чисел

ОТВЕТЫ
В наихудшем случае, последнее новогоднее число - 11111111.

#include lt;iostreamgt;

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 lt;= LASTNEWYEARNUMBER; i++)
    if ( isNewYearNumber(i) )
      sum += i;
  std::cout lt;lt; "Сумма всех новогодних чисел: " lt;lt; sum lt;lt; \n;
  return 0;
}

bool isNewYearNumber(int n)
{
  if ( !( hasZero(n) ) amp;amp; sumDigits(n) == 8)
    return true;
  else
    return false;
}

int sumDigits(int num)
{
  int sum = 0;
  while ( num gt; 0 ) {
    sum += num 10;
    num /= 10;
  }
  return sum;
}

bool hasZero(int n)
{
  if (n lt; 0)
    n = -1 * n;
  if (n 10 == 0)
    return true;
  else if (n / 10 gt; 0)
     hasZero(n / 10);
  else
    return false;
}
216
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам