Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
1

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

09.10.2011, 00:09. Просмотров 963. Ответов 7
Метки нет (Все метки)

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

Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
Здравствуйте. На форуме есть код подобный, но по возрастанию сумм элементов....

Из цифр двух натуральных чисел составить наибольшее возможное число, сохраняя первоначальную последовательность цифр.
подскажите пожалуйста.. Из цифр двух натуральных чисел составить наибольшее...

Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес
Дана последовательность n натуральных чисел. Для каждого числа вычислить...

Последовательность из цифр, букв и знаков. Подсчитать чего больше и составить строки только из цифр, букв и знаков
Дана последовательность состоящая из цифр, букв и знаков пунктуации в...

Последовательность цифр
Определена некоторая последовательность цифр. Напишите программу, которая...

7
alkagolik
Заблокирован
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;
}
1
KeyGen
384 / 291 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
09.10.2011, 01:22 3
Не врублюсь в задание)- самая длинная неубывающая цепочка - это какая вообще? Почему 12235669? Все понял извините.
0
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 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
0
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;
}
А можно этот код записать как то по другому.А то не понятно :'(
0
alkagolik
Заблокирован
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;
}
1
KeyGen
384 / 291 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 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;
}
Подсчитать максимум легко, а вывести максимальную последовательность?
0
KeyGen
384 / 291 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 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;
}
0
Миниатюры
Последовательность цифр   Последовательность цифр  
10.10.2011, 01:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2011, 01:18

Составить последовательность цифр
Здравствуйте! Задачку прикрепил скрином. Нашел реализацию данного задания на...

Подсчитать последовательность из нечетных цифр
Люди помогите с программой, неправильно работает функция подсчета...

Ввести непустую последовательность цифр
Используя только буквенный ввод, то есть процедуру read (c), где с-буквенная...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru