Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.11.2016
Сообщений: 30
1

Максимальная длина подпоследовательности

26.01.2017, 00:27. Показов 647. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано натуральные число n и целые числа а1, а2 ... аn. Для последовательности а1, а2 ... аn рассмотреть подпоследовательности членов, что идут подряд и состоят из:
1)полных квадратов;
2)степеней числа 5;
3)простых чисел;
В каждом варианте получить наибольшую из длин рассмотренных отрезков.
Определить функции, которые позволят распознавать полные квадраты, степени числа 5 и простые числа.

Вот мой вариант программы:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "stdafx.h"
#include <iostream>
using namespace std;
 
bool kvadr(int n)
{
    if ((int)sqrt(n)*(int)sqrt(n) == n)
        return 1;
    return 0;
}
bool step5(int n)
{  
    if (n == 1) return 0;
    while (n >= 5)
    {
        if (n % 5 != 0) return 0;
        n = n / 5;
    }
    if (n == 1) return 1;
    return 0;
}
bool is_simple(int n)
{
    if (n == 1) return 0;
 
    {
        for (int i = 2; i <= sqrt(n); i++)
 
            if (n%i == 0) return 0;
        return 1;
    }
}
 
int max_length(int n, int mass[])
{
    return 0;
}
 
int main()
{
    setlocale(0, "");
    int n;
    cout << "Количество чисел: ";
    cin >> n;
    int a[100];
    cout << "Последовательность: "<< endl;
    for (int i = 0; i < n; i++)
        cin >> a[i];
 
    int max_length = 0, length = 0;
 
        for (int i = 0; i < n; i++)
    {
        if (kvadr(a[i]) == 1)length++;
        else
        {
            if (length > max_length)max_length = length;
            length = 0;
        }
    }
 
    if (length > max_length)max_length = length;
    cout << "Макс длина последовательности полных квадратов: " << max_length << '\n';
        
    for (int i = 0; i < n; i++)
    {
        if (step5(a[i]) == 1)length++;
        else
        {
            if (length > max_length)max_length = length;
            length = 0;
        }
    }
    if (length > max_length)max_length = length;
    cout << "Макс длина последовательности степеней числа 5: " << max_length << '\n';
        
    for (int i = 0; i < n; i++)
    {
        if (is_simple(a[i]) == 1)length++;
 
        else
        {
            if (length > max_length)max_length = length;
            length = 0;
        }
    }
 
    if (length > max_length)max_length = length;
    cout << "Макс длина последовательности простых чисел: " << max_length << '\n';
 
    system("pause");
    return 0;
}
Программ считает 1 за простое число и степень числа 5. Помогите исправить!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2017, 00:27
Ответы с готовыми решениями:

Максимальная длина строки
Можете объяснить почему, когда я добавил цикл do while он первую строку пропускает и считает ее...

Максимальная длина целочисленного типа
Максимальная длина __int64 - 18.446.744.073.709.552.046 Максимальная длина __int128 -...

Какова максимальная длина названия функции
я привык все функции называть по смыслу,но вот услышал мнение о том, что это слишком и надо короче...

Максимальная длина подпоследовательности
Добрый вечер! Помогите пожалуйста. Не могу решить задачу, используя массив. Заранее спасибо. С...

0
26.01.2017, 00:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2017, 00:27
Помогаю со студенческими работами здесь

Максимальная длина подпоследовательности
Добрый вечер! Помогите пожалуйста с задачей. Заранее спасибо. С клавиатуры вводится...

Найти длина максимальной подпоследовательности чисел, все из которой идут по увеличению
Дан массив. Размер не превышает 10000 элементов. Его вводят через стандартный поток ввода. Сначала...

Максимальная длина слова
Здравствуй, подскажите пожалуйста, как найти максимальную длину слова в документе Word.

Максимальная длина запроса
Сейчас составляет 300 символов, если вводить через строку поиска. Менялась ли она, и если да то...


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

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