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

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

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

Author24 — интернет-сервис помощи студентам
Задана последовательность цифр (<100). Определить размер самой длинной неубывающей цепочки чисел этой последовательности.
Например:
Дано:4813847899122356691393893
Результат:
8
12235669
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2011, 00:09
Ответы с готовыми решениями:

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

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

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

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

7
Заблокирован
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
387 / 294 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
09.10.2011, 01:22 3
Не врублюсь в задание)- самая длинная неубывающая цепочка - это какая вообще? Почему 12235669? Все понял извините.
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2011, 14:37 4
Цитата Сообщение от KeyGen Посмотреть сообщение
Не врублюсь в задание)- самая длинная неубывающая цепочка - это какая вообще? Почему 12235669?
последовательность x1,...,xn наз. неубывающей, если для любого i=2,...,n выполнено неравенство
https://www.cyberforum.ru/cgi-bin/latex.cgi?x_{i-1} \leq x_i
0
1 / 1 / 0
Регистрация: 25.04.2011
Сообщений: 33
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
Заблокирован
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
387 / 294 / 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
387 / 294 / 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2011, 01:18
Помогаю со студенческими работами здесь

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

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

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

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


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

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