-1 / 18 / 7
Регистрация: 21.04.2019
Сообщений: 493
1

Найти первый элемент последовательности Хемминга больший заданного числа

11.10.2021, 10:14. Показов 1274. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу по следующему заданию:
Последовательность Хэмминга образуют натуральные числа, не
имеющие других простых делителей, кроме 2, 3 и 5. Найти первый элемент,
больший данного числа M, а также номер этого элемента в последовательности. Массивы не использовать.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2021, 10:14
Ответы с готовыми решениями:

Получить первый элемент последовательности х,х квадрате,х в кубе,...больший числа.
1.Пусть даны числа x и y(x>1).Получить первый элемент последовательности х,х квадрате,х в...

Найти первый член ряда больший заданного числа
Дано действительное А, найти из 1;1+\frac{1}{2};1+\frac{1}{2}+\frac{1}{3} ... ,первое большое A

Получить первый элемент последовательности, больший заданного числа
Пусть даны числа A и B (a>1,b>a).Получить Первый элемент последовательности a,a^2,a^3....,Больший...

Найти сумму первых n элементов последовательности и элемент, больший заданного числа.
Дана последовательность чисел, числа n и k. Найти 1) сумму первых n элементов последовательности,...

Указать первый из элементов последовательности, больший заданного a
Дано вещественное число a. Среди элементов последовательности 1!/1, 2!/1+2, 3!/1+2+3,... указать...

4
3249 / 1470 / 468
Регистрация: 01.06.2021
Сообщений: 4,965
11.10.2021, 11:27 2
Цитата Сообщение от Олег1000 Посмотреть сообщение
Массивы не использовать.
а контейнеры STL можно использовать?
0
2523 / 1243 / 459
Регистрация: 08.11.2016
Сообщений: 3,415
11.10.2021, 11:28 3
Лучший ответ Сообщение было отмечено Олег1000 как решение

Решение

Цитата Сообщение от Royal_X Посмотреть сообщение
а контейнеры STL можно использовать?
нет необходимости

наивное решение:
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
#include <iostream>
 
int isHamming(int n)
{
    int c = n;
    while (n > 1)
    {
        if (!(n % 2))
            n /= 2;
        else if (!(n % 3))
            n /= 3;
        else if (!(n % 5))
            n /= 5;
 
        if (n == c)
            break;
 
        c = n;
    }
 
    return c == 1;
}
 
int main()
{
    int M;
    std::cin >> M;
 
    int n = 0;
 
    int i = 0;
    for (; i < M; ++i)
    {
        if (isHamming(i))
            ++n;
    }
 
    while (!isHamming(++i));
    std::cout << i << "  (" << n + isHamming(M) + 1 << ")" << std::endl;
 
    return(0);
}
1
-1 / 18 / 7
Регистрация: 21.04.2019
Сообщений: 493
11.10.2021, 12:55  [ТС] 4
Цитата Сообщение от Annemesski Посмотреть сообщение
return c == 1;
Для чего это нужно?

Цитата Сообщение от Annemesski Посмотреть сообщение
while (!isHamming(++i));
Для чего это нужно?

И еще вопрос, функция isHamming() возвращает наибольшее простое число кроме 2,3,5 до текущего числа i?
0
2523 / 1243 / 459
Регистрация: 08.11.2016
Сообщений: 3,415
11.10.2021, 13:12 5
Олег1000, функция isHamming возвращает истину если переданное n - число Хэмминга, иначе ложь (поправьте возвращаемый тип на bool)

C++
1
return c == 1;
в функции число делилось на 2 или 3 или 5 пока могло, если в конце результат стал равен 1 - то это число имеет среди делителей только или 2 или 3 или 5, то есть это число Хэмминга, иначе число содержит другие делители.
Цитата Сообщение от Олег1000 Посмотреть сообщение
Для чего это нужно?
по заданию цикл идет пока не встретится следующее число Хэмминга.
1
11.10.2021, 13:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2021, 13:12
Помогаю со студенческими работами здесь

Найти первый элемент последовательности, меньший заданного ε
Помогите с решением, пожалуйста

Найти первый член последовательности по модулю меньший заданного числа
Дано действительное число 3 &gt; x &gt; 1. Последовательность a1, a2, … an образована по закону ...

Найти первый элемент массива больший N
Найти первый элемент массива больший N

Циклы: найти среди членов заданного ряда первый, больший чем A
#include&lt;conio.h&gt; #include&lt;stdio.h&gt; #include&lt;windows.h&gt; #include&lt;cmath&gt; int main() { int...

Найти N-ый элемент последовательности Хемминга
Последовательность Хэмминга образуют натуральные числа, не имеющие других простых делителей, кроме...


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

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

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