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

Последовательность цифр - C++

Восстановить пароль Регистрация
 
Lena _t
 Аватар для Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
09.10.2011, 00:09     Последовательность цифр #1
Задана последовательность цифр (<100). Определить размер самой длинной неубывающей цепочки чисел этой последовательности.
Например:
Дано:4813847899122356691393893
Результат:
8
12235669
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2011, 00:09     Последовательность цифр
Посмотрите здесь:

Из цифр двух натуральных чисел составить наибольшее возможное число, сохраняя первоначальную последовательность цифр. C++
Выявить последовательность неубывающих цифр C++
Бесконечная последовательность цифр C++
C++ Вводится последовательность из N целых чисел. Найти среднее арифметическое его цифр (функцией оформить определения среднего арифметического цифр числа
Последовательность цифр C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
09.10.2011, 01:13     Последовательность цифр #2
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 <stdio.h>
 
int main(){
    char arr[100] = {'\0'};
    int max = 0, count = 1, i = 0, k;
 
    scanf("%s", &arr);
 
    printf(arr);
    i = 0;
 
    while (arr[i] !='\0'){
 
        while (arr[i++] <= arr[i + 1])
            ++count;
 
        if (max < count)
            max = count;
 
        count = 1;
    }
    printf("\n%d\n", max);
    printf("\n\n");
 
    return 0;
}
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
09.10.2011, 01:22     Последовательность цифр #3
Не врублюсь в задание)- самая длинная неубывающая цепочка - это какая вообще? Почему 12235669? Все понял извините.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2011, 14:37     Последовательность цифр #4
Цитата Сообщение от KeyGen Посмотреть сообщение
Не врублюсь в задание)- самая длинная неубывающая цепочка - это какая вообще? Почему 12235669?
последовательность x1,...,xn наз. неубывающей, если для любого i=2,...,n выполнено неравенство
http://www.cyberforum.ru/cgi-bin/latex.cgi?x_{i-1} \leq x_i
Lena _t
 Аватар для Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
09.10.2011, 18:33  [ТС]     Последовательность цифр #5
Цитата Сообщение от alkagolik Посмотреть сообщение
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 <stdio.h>
 
int main(){
    char arr[100] = {'\0'};
    int max = 0, count = 1, i = 0, k;
 
    scanf("%s", &arr);
 
    printf(arr);
    i = 0;
 
    while (arr[i] !='\0'){
 
        while (arr[i++] <= arr[i + 1])
            ++count;
 
        if (max < count)
            max = count;
 
        count = 1;
    }
    printf("\n%d\n", max);
    printf("\n\n");
 
    return 0;
}
А можно этот код записать как то по другому.А то не понятно :'(
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
09.10.2011, 18:45     Последовательность цифр #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
#include <stdio.h>
 
int main(){
    char arr[100] = {'\0'};
    int max = 0, count = 1, i = 0, k;  //count -счетчик, max - максимальная неубывающая
//последовательность
 
    scanf("%s", &arr); //считать цифры в массив
 
    printf(arr);
    i = 0;
 
    while (arr[i] !='\0'){  // пока элемент массива не равен символу конца строки
 
        while (arr[i++] <= arr[i + 1])  //пока предыдущий элемент <= следующего 
            ++count;   //накручиваем счетчик
 
        if (max < count) //если максимум меньше счетчика - заменить максимум
            max = count;
 
        count = 1; // сбросить счетчик
    }
    printf("\n%d\n", max);
    printf("\n\n");
 
    return 0;
}
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
10.10.2011, 00:38     Последовательность цифр #7
Цитата Сообщение от alkagolik Посмотреть сообщение
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>
 
int main(){
    char arr[100] = {'\0'};
    int max = 0, count = 1, i = 0, k;  //count -счетчик, max - максимальная неубывающая
//последовательность
 
    scanf("%s", &arr); //считать цифры в массив
 
    printf(arr);
    i = 0;
 
    while (arr[i] !='\0'){  // пока элемент массива не равен символу конца строки
 
        while (arr[i++] <= arr[i + 1])  //пока предыдущий элемент <= следующего 
            ++count;   //накручиваем счетчик
 
        if (max < count) //если максимум меньше счетчика - заменить максимум
            max = count;
 
        count = 1; // сбросить счетчик
    }
    printf("\n%d\n", max);
    printf("\n\n");
 
    return 0;
}
Подсчитать максимум легко, а вывести максимальную последовательность?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2011, 01:18     Последовательность цифр
Еще ссылки по теме:

C++ Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес
C++ Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
C++ Последовательность из цифр, букв и знаков. Подсчитать чего больше и составить строки только из цифр, букв и знаков

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

Или воспользуйтесь поиском по форуму:
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
10.10.2011, 01:18     Последовательность цифр #8
alkagolik, Немного модифицировал:
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
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
int main(){
    
    setlocale(LC_ALL, "rus");
    
    char arr[100] = {'\0'};
    int max = 0, count = 1, i = 0,j=0;//count -Г±Г·ГҐГІГ·ГЁГЄ, max - Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*Г*Гї Г*åóáûâГ*ГѕГ№Г*Гї
                                      //ïîñëåäîâГ*òåëüГ*îñòü
    int k; 
    
    scanf("%s", &arr); //Г±Г·ГЁГІГ*ГІГј öèôðû Гў Г¬Г*Г±Г±ГЁГў
    
 
    while (arr[i] !='\0'){  // ïîêГ* ýëåìåГ*ГІ Г¬Г*Г±Г±ГЁГўГ* Г*ГҐ Г°Г*ГўГҐГ* ñèìâîëó ГЄГ®Г*Г¶Г* ñòðîêè
 
        while (arr[i++] <= arr[i + 1])  //ïîêГ* ïðåäûäóùèé ýëåìåГ*ГІ <= ñëåäóþùåãî 
            ++count;   //Г*Г*êðó÷èâГ*ГҐГ¬ Г±Г·ГҐГІГ·ГЁГЄ
 
        if (max < count){ //åñëè Г¬Г*êñèìóì ìåГ*ГјГёГҐ Г±Г·ГҐГІГ·ГЁГЄГ* - Г§Г*ìåГ*ГЁГІГј Г¬Г*êñèìóì
            max = count;
            k=i; //Г‡Г*ïîìèГ*Г*ГҐГ¬ ãäå áûëГ* Г*Г*èáîëüøГ*Гї
            }
 
        count = 1; // ñáðîñèòü Г±Г·ГҐГІГ·ГЁГЄ
    }
    
    cout << "\nГЊГ*ГЄГ±ГЁГ¬Г*ëüГ*Г*Гї ïîñëåäîâГ*òåëüГ*îñòü:\n";
    for(int m=k-max; m<k; m++) 
    cout << arr[m];
    
    cout << "\n\nÊîëè÷åñòâî öèôð Гў ïîñëåäîâГ*òåëüГ*îñòè:\n";
    printf("%d\n", max);
    printf("\n\n");
 
    system("PAUSE");
    return 0;
}
Миниатюры
Последовательность цифр   Последовательность цифр  
Yandex
Объявления
10.10.2011, 01:18     Последовательность цифр
Ответ Создать тему
Опции темы

Текущее время: 14:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru