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

Продолжить последовательность 1, 11 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
ZveRN
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 16
15.11.2012, 17:14     Продолжить последовательность 1, 11 #1
Помогите пожалуйста продолжить последовательность 1, 11(одна однерка), 21(две однерки), 1211(одна двойка, одна однерка)...
никак не выходит(
если можно с пояснениями) заранее благодарю)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2012, 17:14     Продолжить последовательность 1, 11
Посмотрите здесь:

C++ С чего продолжить......
C++ Как продолжить?
C++ Изучение C++: с чего начать и чем продолжить
Можно ли продолжить считывать в поток после ^Z ? C++
Продолжить (y\n) ? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
15.11.2012, 17:21     Продолжить последовательность 1, 11 #2
Цитата Сообщение от ZveRN Посмотреть сообщение
Помогите пожалуйста продолжить последовательность 1, 11(одна однерка), 21(две однерки), 1211(одна двойка, одна однерка)...
никак не выходит(
если можно с пояснениями) заранее благодарю)
это всё задание? ничего вводить ненужно, просто посделовательность едениц(однерок) и двоек?
ZveRN
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 16
15.11.2012, 19:15  [ТС]     Продолжить последовательность 1, 11 #3
ну, там дальше в последовательности и 3 и 4 появляются, суть в том, что берется символ и считается сколько подряд их и д.т.
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
15.11.2012, 19:45     Продолжить последовательность 1, 11 #4
тогда как я понел должно выглядеть так
1 -> 11 -> 21 -> -> 1211 -> 2211 -> 12211 -> ... не , стори, что-то я даже недогоняю что он должен показыват
ZveRN
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 16
15.11.2012, 19:59  [ТС]     Продолжить последовательность 1, 11 #5
1
1(одна) 1(единица)
2(две) 1(единицы)
1(одна) 2(двойка) 1(одна) 1(единица)
...
от предыдущего берется следущее, расписал подробней некуда
первое число *количество подряд идущих, одинаковых чисел*, второе *само число, которое считали*, третье *количество*, 4е символ.....
margarin
 Аватар для margarin
35 / 35 / 0
Регистрация: 02.06.2012
Сообщений: 332
15.11.2012, 20:55     Продолжить последовательность 1, 11 #6
может я чего не понял... Но, по моему прозе ТЗ в студию залить (если это не оно было).
ZveRN
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 16
16.11.2012, 09:09  [ТС]     Продолжить последовательность 1, 11 #7
Первый член последовательности - 1, чтобы получить следующий член последовательности, надо прочитать предыдущий. Читаем: "одна единица", пишем: 11. Итак:
одна 1 - > 11, две 1 - > 21, одна 2 одна 1 - > 1211, и т. д.
1,11,21,1211,111221,312211,13112221,...
http://acm.msu.ru/200503/200503-D.pdf
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
16.11.2012, 09:40     Продолжить последовательность 1, 11 #8
дошло...
ZveRN
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 16
16.11.2012, 19:13  [ТС]     Продолжить последовательность 1, 11 #9
делаю со строками, но никак не выходит, help (
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.11.2012, 19:39     Продолжить последовательность 1, 11 #10
Я написал так:
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
#include <iostream>
#include <string>
 
typedef std::string::const_iterator citstring;
 
inline int to_int(char symbol)
{
   return symbol - '0';
}
 
void solve(std::string& text)
{
   while (!text.empty() && text.size()%2 == 0)
   {
      std::string solution;
      for (citstring it = text.begin(); it != text.end(); ++it)
      {
         int count = to_int(*it);
         ++it;
         solution.resize(solution.size()+count, *it);
      }
      text = solution;
   }
   return;
}
 
int main()
{
   std::string text = "312211";
 
   solve(text);
   std::cout << text << std::endl;
 
   system("pause");
   return 0;
}
Но это, что называется, "в лоб". Наверняка тут есть быстрый алгоритм)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 21:15     Продолжить последовательность 1, 11
Еще ссылки по теме:

Продолжить програму C++
C++ Как зафиксировать позицию в файле, а потом продолжить с неё считывание
Продолжить последовательность чисел C++

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
16.11.2012, 21:15     Продолжить последовательность 1, 11 #11
Цитата Сообщение от ZveRN Посмотреть сообщение
Помогите пожалуйста продолжить последовательность 1, 11(одна однерка), 21(две однерки), 1211(одна двойка, одна однерка)...
вариант:
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
#include <iostream>
using namespace std;
#define N 80
void f(int a[], int b[], int &na, int &nb)
{
    nb=0;
    int t, i;
    for(i=0; i<na; i++)
    {
        t=1;
        while(a[i]==a[i+t])
            t++;
        b[nb++]=t;
        b[nb++]=a[i];
        i+=t-1;     
    }
 
}
int main()
{
    int a[N*2], b[N*2], na=1, nb, t=1, i;
    a[0]=1;
    while(true)
    {
        if(t%2==0)
        {
            for(i=0; i<nb; i++)
                cout<<b[i];
            cout<<endl;
            f(b,a,nb,na);
            if(na>=N)
                break;
            t++;
        }
        else
        {
            for(i=0; i<na; i++)
                cout<<a[i];
            cout<<endl;
            f(a,b,na,nb);
            if(nb>=N)
                break;
            t++;
        }
    }
   
   return 0;
}
Цитата Сообщение от ZveRN Посмотреть сообщение
ну, там дальше в последовательности и 3 и 4 появляются,
большое подозрение что 4 и больше никогда не появятся
Yandex
Объявления
16.11.2012, 21:15     Продолжить последовательность 1, 11
Ответ Создать тему
Опции темы

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