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

Богдан
Jul 15, 2019
В наихудшем случае, последнее новогоднее число - 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;
}
#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
Смежные вопросы: