0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 8
1

Дается два целых натуральных числа L и r. Нужно посчитать сколько существует чисел от l до r включительно у которых все

06.12.2019, 12:01. Показов 7442. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дается два целых натуральных числа L и r. Нужно посчитать сколько существует чисел от l до r включительно у которых все цифры в десятичном записи четные

помагите не проходит ограничение 10 степени 10.

#include<bits/stdc++.h>
#define IOS ios_base::sync_with_stdio(false),cin.tie(NULL)
using namespace std;
int Nod ( int a , int b ){
while ( a && b ){
if ( a > b ){
a = a % b;
}
else{
b = b % a;
}
}

return a | b;
}

int main()
{
//freopen("open.in","r",stdin);
//freopen("open.out","w",stdout);
IOS;

unsigned long long l , r , kol = 0;
cin >> l >> r;

for ( l ; l <= r ;l++ ){
if ( l < 1000 ){
if ( l % 2 == 0 && ((l / 10) % 2 == 0) && ((l / 100) % 2 == 0) && ((l / 1000) % 2 == 0)){
kol++;
}
}

else if( l < 100000 ){
if ( l % 2 == 0 && ((l / 10) % 2 == 0) && ((l / 100) % 2 == 0) && ((l / 1000) % 2 == 0) && ((l / 10000) % 2 == 0) && ((l / 10000) % 2 == 0) && ((l / 100000) % 2 == 0)){
kol++;
}
}
else{
if ( l % 2 == 0 && ((l / 10) % 2 == 0) && ((l / 100) % 2 == 0) && ((l / 1000) % 2 == 0) && ((l / 10000) % 2 == 0) && ((l / 10000) % 2 == 0) && ((l / 100000) % 2 == 0) && ((l / 1000000) % 2 == 0) && ((l / 10000000) % 2 == 0) && ((l / 100000000) % 2 == 0)){
kol++;
}
}
}

cout << kol;

return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2019, 12:01
Ответы с готовыми решениями:

Сколько существует чисел от L до R, включительно, у которых все цифры в десятичной записи четные?
Дается два целых натуральных числа L и R. Нужно посчитать сколько существует чисел от L до R,...

Даны натуральные числа k и s. Определите, сколько существует k-значных натуральных чисел, сумма цифр которых равна d.
Даны натуральные числа k и s. Определите, сколько существует k-значных натуральных чисел, сумма...

Дан массив целых чисел, среди которых имеется один нуль. Вывести на экран все числа, включительно до нуля
2. Дан массив целых чисел, среди которых имеется один нуль. Вывести на экран все числа,...

Даны два целых числа А и В (A<B). Найти произведение всех целых чисел от А до В включительно
помогите

4
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
06.12.2019, 12:13 2
Цитата Сообщение от Alisultan Посмотреть сообщение
Дается два целых натуральных числа L и r. Нужно посчитать сколько существует чисел от l до r включительно у которых все цифры в десятичном записи четные
C++
1
2
3
4
5
6
7
8
bool all_digits_even(unsigned long long x)
{
    for (; x != 0; x /= 10)
        if ((x % 10) % 2 != 0)
            return false;
 
    return true;
}
1
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 8
06.12.2019, 13:06  [ТС] 3
Я не понял можете подробнее рассказать
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
06.12.2019, 13:11 4
Цитата Сообщение от Alisultan Посмотреть сообщение
Я не понял можете подробнее рассказать
Это функция, которая возвращает true, если все разряды в числе чётные

C++
1
2
3
for ( l ; l <= r ;l++ )
   if (all_digits_even(l))
       ++kol;
0
Диссидент
Эксперт C
27708 / 17324 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
06.12.2019, 13:53 5
Вот тут В заданном интервале найти количество чисел у которых все цифры в десятичной записи четные аналогичная задача.
Есть переборное решение. Однако, учитывая
Цитата Сообщение от Alisultan Посмотреть сообщение
ограничение 10 степени 10.
этот путь может и не пройти.
Там же есть некоторые соображения о том, как это ограничение обойти. То есть решить задачу за конечное время, практически не зависящее от величины L и R.

Добавлено через 31 минуту
Если уж лень выводить формулу (или она непонятна), можно таки воспользоваться перебором, но более осмысленным. Так, если есть число 21446024, то совершенно нет резона перебирать дальше 21446025 и т.д. Единичка в 7-м разряде все равно никуда не денется. Следует сразу переходить к 22000000.
То есть алгоритм такой. Находим самую левую нечетную цифру. К левой части прибавляем 1, хвост сбрасываем в 0. Тут может получиться такая ситуация
2912345 - 3000000 Но следующий шаг приводит к 4000000.
Ну и конечно, i+=2. Хотя это уже мелочи...
0
06.12.2019, 13:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2019, 13:53
Помогаю со студенческими работами здесь

Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно
Даны два целых числа A и B (A &lt; B). Найти сумму всех целых чисел от A до B включительно. как это...

Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно
(For) Даны два целых числа A и B (A &lt; B). Найти сумму всех целых чисел от A до B включительно.

Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно
Желательно сделать в Pascal или Delphi

Даны два целых числа А и В (A<B). Найти произведение всех целых чисел от А до В включительно
Помогите Пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru