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

Выявить последовательность неубывающих цифр - C++

Восстановить пароль Регистрация
 
Chaos1993
0 / 0 / 0
Регистрация: 05.10.2010
Сообщений: 52
25.11.2010, 19:05     Выявить последовательность неубывающих цифр #1
Задача:Дано некоторое число N.
Выявить из этого числа максимальную последовательность неубывающих цифр.
Пример: число 721589. в этом числе последовательность максимальных неубывающих цифр 589.
Может кто помочь?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2010, 19:05     Выявить последовательность неубывающих цифр
Посмотрите здесь:

Из цифр двух натуральных чисел составить наибольшее возможное число, сохраняя первоначальную последовательность цифр. C++
Последовательность цифр C++
C++ Вводится последовательность из N целых чисел. Найти среднее арифметическое его цифр (функцией оформить определения среднего арифметического цифр числа
Последовательность цифр C++
C++ Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ol'ka07
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 6
07.06.2011, 15:37     Выявить последовательность неубывающих цифр #2
и мне нужно решение такой задачи... помогите если можете)))
co6ak
07.06.2011, 15:41
  #3

Не по теме:

человек воспользовался поиском О_О браво!

diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.06.2011, 16:38     Выявить последовательность неубывающих цифр #4
Проверьте
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
#include <iostream>
#include <cstring>
int maxsequence(const char * s){
    unsigned len=strlen(s);
    int * arr=new int[len];
    for (int i=0; s[i]; i++)
        arr[i]=s[i]-48;
    unsigned maxlen=0;
    for (unsigned i=0; i < len; i++)
        for (unsigned j=len; --j>i;){
            bool issequence=true;
            for (unsigned x=i; x < j; x++)
                if (arr[x]>arr[x+1]) {issequence=false; break;}
            if (issequence&&j-i>maxlen) maxlen=j-i;
        }
    delete[] arr;
    return ++maxlen;
}
int main(){
    char s[100];
    std::cin >> s;
    std::cout << maxsequence(s);
    return 0;   
}
Ol'ka07
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 6
07.06.2011, 20:02     Выявить последовательность неубывающих цифр #5
Спасибо огромное))) а вот ещё есть такая задачка: среди некоторого количества натуральных чисел указать самую длинную группу последовательных элементов, которые представимы в виде суммы квадратов двух целых чисел (5=1^2+2^2). Проверку является ли число суммой квадратов двух целых чисел органиховать во вспомогательном алгоритме.
Если вдруг не трудно то пожалуйста помогите!)))
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
08.06.2011, 08:40     Выявить последовательность неубывающих цифр #6
Даже не знаю...
Если кто-то скажет, как можно определить, является ли число суммой квадратов двух целых чисел, то без проблем...

Добавлено через 18 минут
Сделал с помощью быдлоперебора, проверьте:
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
#include <iostream>
#include <cstring>
bool issum(int n){
    for (int i=1; i < n; i++)
        for (int j=i; j < n; j++)
            if (i*i+j*j==n) return true;
    return false;
}
int maxsequence(int * arr,int len){
        int maxlen=0;
        for (int i=0; i < len; i++)
                for (int j=len; --j>i;){
                        bool issequence=true;
                        for (int x=i; x < j; x++)
                                if (!issum(arr[x])||!issum(arr[x+1])) {issequence=false; break;}
                        if (issequence&&j-i>maxlen) maxlen=j-i;
                }
        return ++maxlen;
}
int main(){
        int a[]={3,8,13,10,4,18};
        std::cout << maxsequence(a,sizeof(a)/sizeof(*a));
        return 0;       
}
Yandex
Объявления
08.06.2011, 08:40     Выявить последовательность неубывающих цифр
Ответ Создать тему
Опции темы

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