Форум программистов, компьютерный форум CyberForum.ru

Строго возрастающая макс. подпоследовательность - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как ввести с клавиатуры элементы динамического массива? http://www.cyberforum.ru/cpp-beginners/thread969682.html
int *mass=new int; for(int i=0;i<10;i++) { } Как ввести в цикле элементы массива , а потом вывести их на экран? Подскажите , пожалуйста .
C++ Ошибка компиляции Среда разработки Dev-C++, в коде при компиляции выскакивает ошибка типа " `ctrok' undeclared (first use this function) ". В чем проблема? #include <iostream> using namespace std; int main() { char strok; cout << "Ââåäèòå ñòðîêó: "; cin >> strok; http://www.cyberforum.ru/cpp-beginners/thread969677.html
Форумчани, подскажите статью C++
Здравствуйте, можете подсказать статью (хорошую), в которой подробно будут объяснятся классы в С++. А то толковой статьи найти не могу, в которой будет все понятно и толково.
Перезапись значений в матрице C++
Удалите тему
C++ Вводятся два числа N и K. Выведите количество чисел из диапазона от 1 до N включительно таких, что их сумма цифр делится на K http://www.cyberforum.ru/cpp-beginners/thread969665.html
#include<iostream> using namespace std; int main() {int i,m,x,s,n,k; cin>>n>>k; s=0;x=0; for(i=1;i<=n;i++) {while(i>0){m=i%10;i=i/10;x=x+m;}; if(x%k==0)s=s+1;} cout<<s;
C++ Тестовый пример C++ Как правильно составить тестовый пример для программы, написанной на C++? Что он должен включать в себя и как выглядеть? подробнее

Показать сообщение отдельно
HenryDukart
 Аватар для HenryDukart
99 / 99 / 27
Регистрация: 05.10.2013
Сообщений: 400
Завершенные тесты: 2
05.10.2013, 18:50     Строго возрастающая макс. подпоследовательность
Долго ломал голову над задачей. Наконец-то нашел код (он правда, на паскале). Переделал, все хорошо. Но вот не задача: никак не могу добиться, чтобы программа все-таки правильно вывела эту подпоследовательность. Прошу помощи . (Кажется, что код большой. на самом деле там много оформления)
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
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    const int nummax(20);
    double mass1[nummax],mass2[nummax], t, p(1);
    int n, k, nmax(0), nmin(0);
    cout<<"Введите количество элементов массива (от 1 до 20)."<<endl;
    cin>>n;
    while ((n>nummax)||(n<=0))
    {
        cout<<"Число выходит за границы дозволенного. Введите другое число."<<endl;
        int n1;
        cin>>n1;
        n=n1;
    }
    char otvet='a';
    do
    {
        cout<<"Желаете ли вы использовать для ввода массива генератор случайных чисел? (y/n)\n";
        cin>>otvet;
        if ((otvet!='y')&&(otvet!='n'))
            cout<<"Ошибка! Ответ неверный. Повторите ввод.\n";
    }
    while ((otvet!='y')&&(otvet!='n'));
    if (otvet=='y')
    {
        cout<<"Введите границы чисел, которые выдаст генератор."<<endl;
        int a, b;
        cin>>a>>b;
        srand(time(NULL));
        for (int i=0; i<n; i++)
        {
            mass1[i]=(double)(rand())/RAND_MAX*(b-a)+a;
            mass2[i]=mass1[i];
        }
    }
    else
    {
        cout<<"Введите "<<n<<" чисел."<<endl;
        for (int i=0; i<n; i++)
        {
            cin>>mass1[i];
            mass2[i]=mass1[i];
        }
    }
    for (int i=0; i<n; i++)
        cout<<i<<") "<<mass1[i]<<endl;
    cout<<endl;
 
//1)
    int dl[nummax], pre[nummax];
    for (int i=0; i<n; i++)
    {
        dl[i]=1;
        pre[i]=-1;
    }
    for (int i=0; i<n-1; i++)
        for (int j=i+1; j<n; j++)
            if (mass1[j]>mass1[i])
                if (dl[i]+1>dl[j])
                {
                    dl[j]=dl[i]+1;
                    pre[j]=i;
                }
    int maxl(0);
    for (int i=0; i<n; i++)
        if (dl[maxl]<=dl[i])
            maxl=i;
    cout<<"Максимальная длина возрастаюзей подпоследовательности равна "<<dl[maxl]<<":"<<endl;
    return 0;
}
Код на Паскале взят с http://informatics.mccme.ru/moodle/m...iew.php?id=488 (способ 3).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru