Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 23

Сколько чисел между n и m (n<m) состоит только из нечетных цифр

14.11.2014, 19:05. Показов 5060. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем.я всё не могу додумать как правлиьно написать программу со вложенными циклами.
Условие:
Сколько чисел между n и m (n<m) состоит только из нечетных цифр. Выведите на экран эти числа.

Решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
 
void main ()
{
    setlocale(0, "Russian");
    int n,m,s=0;
    printf("\nЧисла n и m равны: ");
    scanf_s("%d%d",&n,&m);
    for (int i=n;i<=m;i++)
    {   
    if(i%2!=0) s++;
    }
    printf("\nЧисло нечетных чисел: %d%",s);
    _getch();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2014, 19:05
Ответы с готовыми решениями:

Определить, состоит ли число из четных и нечетных цифр
В диалоговом режиме задается длинное целое число A Определить, состоит ли число из четных и нечетных цифр. Заранее спасибо за помощь.

Выяснить, сколько существует n-значных чисел, которые состоят только из нечётных цифр
&quot;Хорошим&quot; будем считать число, которое состоит только из нечетных цифр. Например число 157953 хорошее, а число 2452117 нет. Необходимо...

Сколько чисел между 1000 и 10000 состоит из нечетных цифр, сколько из разных цифр?
Сколько чисел между 1000 и 10000 состоит из нечетных цифр, сколько из разных цифр?

37
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
14.11.2014, 23:27
Студворк — интернет-сервис помощи студентам
А мне вот это сообщение, прошедшее скромно и неприметно, нравится
Цитата Сообщение от Dani Посмотреть сообщение
Вроде бы можно без циклов перебора числа.
Сейчас попробую написать.
Вместо проверок всех (пусть даже только нечетных) числе в огромном диапазоне, можно просто их генерировать из нечетных цифр и считать количество - будет и красиво и быстро Вот только писать я не буду, ибо буквально сейчас есть другие игрушки
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
14.11.2014, 23:43
Пришлось помучаться с кодом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
 
typedef unsigned long long int ull;
ull dp[20] = {1};
 
 
int CountDigits(ull x)
{
    if(!x)
        return 1;
    int result = 0;
    while(x)
    {
        ++result;
        x /= 10;
    }
    return result;
}
 
 
ull Count(ull x, int length, ull pow10)
{
    if(length == 0)
        return 0;
    if(length == 1)
        return (x + 1) >> 1;
 
    ull ans = dp[length - 1];
    
    int digit;
    if(digit = (x / pow10) % 10)
        ans += ((digit - 1) >> 1) * dp[length - 1];
    if((pow10 == 1 && digit >= 1) || ((digit & 1) == 0 && digit > 0))
    {
        ans += dp[length - 1];
    }
    else if(digit & 1)
    {
        ans += Count(x % pow10, length - 1, pow10 / 10);
    }
    
    return ans;
}
 
 
ull Count(ull x)
{
    ull pow10 = 1;
    int length = CountDigits(x);
    for(int i = 1; i < length; ++i)
        pow10 *= 10;
    return Count(x, length, pow10);
}
 
 
int main()
{
    for(int i = 1; i < 20; ++i)
        dp[i] = dp[i - 1] * 5;
    ull l, r;
    std::cin >> l >> r;
    std::cout << Count(r) - Count(l - 1) << std::endl;
    return 0;
}

Цитата Сообщение от _Ivana Посмотреть сообщение
Вместо проверок всех (пусть даже только нечетных) числе в огромном диапазоне, можно просто их генерировать из нечетных цифр и считать количество - будет и красиво и быстро Вот только писать я не буду, ибо буквально сейчас есть другие игрушки
Я имел ввиду вообще без генерации чисел

Похоже, что сложность получилась O(1)
1
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 23
14.11.2014, 23:44  [ТС]
ребят а для чего вы ретурн используете?просто не до конца понимаю его сути
0
11 / 11 / 10
Регистрация: 16.12.2013
Сообщений: 66
14.11.2014, 23:52
Fore, return "значение" - возвращает определенное значение, а просто return - передает управление вызывающей функции
0
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
14.11.2014, 23:52
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
bool isAllDigitsOdd(int n);
 
int main()
{
    int n = 0, m = 20;
 
    for (int i = n; i < m; ++i) {
        if (isAllDigitsOdd(i)) {
            std::cout << i << std::endl;
        }
    }
 
    return 0;
}
 
bool isAllDigitsOdd(int n)
{
    for (; n != 0; n /= 10) {
        if (!((n % 10) % 2)) {
            return false;
        }
    }
    return true;
}
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
14.11.2014, 23:57
предлагаю для разнообразия такой вариант проверки
как известно, произведение нечетных чисел есть число нечетное
так вот, перемножить все разряды и проверить результат
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool Veryfy(int x)
{
int p=1;
if(x==0)
  return false;
while(x)
{
 p*=x%10;
 x/=10;
}
return p%2;
}
2
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 23
19.11.2014, 00:01  [ТС]
ребят а вот как мне этот код исправить чтобы всё работало,потому что не могу понять что неправильно

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//programm 12
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream>
 
void main ()
{
    
    
    int n,m,k,i,s=0;
 
    setlocale(0,"russian");
    printf("Введите числа n и m:");
    scanf("%d%d",&n,&m);
    for(i=n;i<=m;i++)
    {
        while(i>0)
        
        {
        k=i%10;
        if (k%2!=0) 
        {
        s=s+1;
        printf("%d",s);
        }
            
        i/=10;
        }
    
    }
    getch();
    
}
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
19.11.2014, 06:59
Цитата Сообщение от Fore Посмотреть сообщение
что не могу понять что неправильно
Цитата Сообщение от Fore Посмотреть сообщение
s=s+1;
что ты здесь складываешь?
Цитата Сообщение от Fore Посмотреть сообщение
i/=10;
здесь i портится, в результате внешний цикл вечен
0
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 23
19.11.2014, 13:44  [ТС]
складываю количество чисел с нечётными цифрами

Добавлено через 5 минут
просто надо эту задачу немного проще решить.....чем вы предложили варианты..
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
19.11.2014, 14:17
Цитата Сообщение от Fore Посмотреть сообщение
складываю количество чисел с нечётными цифрами
Зачем???

да и не складываешь ты
здесь складываются количество нечетных разрядов
т.е одно число 1357 прибавит 4
а число 1234 которое не попадает под условие
Цитата Сообщение от Fore Посмотреть сообщение
состоит только из нечетных цифр.
прибавит 2
0
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 23
19.11.2014, 14:25  [ТС]
понял,что сумма не нужна....как то так попытался сделать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream>
 
void main ()
{
    
    
    int n,m,k,i;
 
    setlocale(0,"russian");
    printf("Введите числа n и m:");
    scanf("%d%d",&n,&m);
    
    
    for(i=n;i<m;i++)
    { if(i%2!=0) //если число нечётное то выполняем следующее
        {
        while(i>0)
     {
        
        k=i%10;
        if (k%2!=0) //если цифра нечётного чмсла нечётна,то печатаем i
        {
       
        printf("%d",i);
        i/=10;
        
         }
        
      }
    
        
        }
    }
    
    getch();
    
}
0
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 16
19.11.2014, 17:36
Как-то не по-русски написано условие...Как я понял вводим например 10 и 15 значит между ними нечетные числа 11,13?Выводим ответ 2?
0
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
19.11.2014, 17:51
Цитата Сообщение от bloodxakep Посмотреть сообщение
Как-то не по-русски написано условие...Как я понял вводим например 10 и 15 значит между ними нечетные числа 11,13?Выводим ответ 2?
именно так и написано в условии, только вывести нужно не их кол-во а сами числа

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
 
using namespace std;
 
int check(int value) {
    int temp;
    
    for ( ; value != 0; ) {
        temp = value % 10;
        if ( temp % 2 == 0 ) {
            return 0;
        }
        value /= 10;
    }
    return 1;
}
 
int main() {
    int n, m;
    
    cin >> n >> m;
    
    for ( int i = n+1; i < m; i++ ) {
        if ( check(i) ) {
            cout << i << endl;
        }
    }
    
    return 0;
}
0
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 16
19.11.2014, 17:52
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
 
main ()
{
    setlocale(0, "Russian");
    int n,m,s=0;
    printf("\nЧисла n и m: ");
    scanf("%d%d",&n,&m);
    if (n>m) printf("Значение n больше чем m");else if (n+1==m) printf("Нет пространства для подсчета=)");else for (int i=n+1;i<m;i++)
    {   
        
    if(i%2==1) printf("%d ",i);
    }
    getch();
}
Работает на все случаи жизни)
0
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
19.11.2014, 18:05
Цитата Сообщение от bloodxakep Посмотреть сообщение
Работает на все случаи жизни)
Условие:
Сколько чисел между n и m (n<m) состоит только из нечетных цифр.
Это значит, что если, например, попадется нечетное число 121 то в нём есть чётная цифра 2, которая не соответствует условию.
0
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 16
19.11.2014, 18:31
Цитата Сообщение от Darkrduk Посмотреть сообщение
Это значит, что если, например, попадется нечетное число 121 то в нём есть чётная цифра 2, которая не соответствует условию.
Ааа...Теперь понял)

Добавлено через 23 минуты
Тогда вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
 
main ()
{int a,a1,a2;
    setlocale(0, "Russian");
    int n,m,s,d,k,t=0;
    printf("\n×èñëà n è m: ");
    scanf("%d%d",&n,&m);
    if (n>m) {printf("Çíà÷åíèå n áîëüøå ÷åì m");t=1;} else if (n+1==m) {printf("Íåò ïðîñòðàíñòâà äëÿ ïîäñ÷åòà=)");t=1;} else for (int i=n;i<m;i++)
    {   
    a=i;
     while (a>0) {
     a1=a/10;
     a2=a-a1*10;
     a=a1;
     if (a2%2==1) k++;
     d++;
     }     
     if (d==k) {printf("%d ",i);t++;}   
     d=0;
     k=0;
    }
    getch();
}
0
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 23
19.11.2014, 22:12  [ТС]
просто я плохо ориентуруюсь с функцией return....по условию надо использовать вложенные циклы....
0
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
20.11.2014, 12:10
Цитата Сообщение от Fore Посмотреть сообщение
просто я плохо ориентуруюсь с функцией return....по условию надо использовать вложенные циклы....
То же самое, как и с функцией:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
using namespace std;
 
int main() {
    int n, m, temp, last;
    bool flag = true;
    
    cin >> n >> m;
    
    for ( int i = n+1; i < m; i++ ) {
        temp = i;
        for ( ; temp != 0; ) {
            last = temp % 10;
            if ( last % 2 == 0 ) {
                flag = false;
            }
            temp /= 10;
        }
        if ( flag == true ) {
            cout << i << endl;
        }
        flag = true;
    }
    
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.11.2014, 12:10

Определить, сколько чисел между m и n (m<n) состоит из нечетных цифр
Собственно задача звучит так: К сожалению лекцию по &quot;Функциям&quot; я проболел и то, что мог осознать сам очень мало, но вот, что...

Сколько чисел между 1000 и 100000 состоят из нечетных цифр, а сколько из различных цифр?
Написала программу, но где-то есть ошибочка... не могу понять где, может кто-нибудь подскажет???Буду очень благодарна!!! А задание...

Выяснить, сколько натуральных чисел состоит из нечётных цифр и сколько из различных цифр
Выяснить, сколько натуральных чисел между n и m&gt;n состоит из нечётных цифр и сколько из различных цифр. Напечатать сами числа и их...

Сколько существует четырехзначных десятичных чисел, в каждом из которых четных цифр столько же, сколько и нечетных
2) Сколько существует четырехзначных десятичных чисел, в каждом из которых четных цифр столько же, сколько и нечетных? С нуля числа...

Найти сумму нечетных цифр числа Определить состоит ли число из одинаковых цифр
Помогите написать прогу. Найти сумму нечетных цифр числа Определить состоит ли число из одинаковых цифр


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

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru