С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 4

Найти значение члена последовательности чисел составленных из заданных десятичных цифр

08.03.2019, 11:47. Показов 2097. Ответов 26

Студворк — интернет-сервис помощи студентам
Здравствуйте .
В общем нужна помощь. программа должна найти и сообщить число, записанное с помощью цифр 1, 2, 6(1, 2, 6, 11, 12, 16, 21, 22, 26, 61 ,62 ,66, 111....) стоящее на определенном месте.нужное место 2019
ПРИМЕР
Номер места: 13
Число:111
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.03.2019, 11:47
Ответы с готовыми решениями:

Найти количество чисел составленных из цифр a,b,c
Составить программу. На отрезке (2^10<N<2^31) найти количество чисел , составленных из цифр a,b,c. с процедурой или функцией и если...

Найти количество чисел, составленных из цифр a,b,c
В ABC работает как надо, в турбо не хочет Условие: На отрезке (2^10<N<2^31) найти количество чисел, составленных из цифр a,b,c. ...

Найти количество чисел, составленных из цифр a, b, c
//На отрезке (210<N<231) найти количество чисел, составленных из цифр a,b,c. //Использовать подпрограмму, которая на вход получает...

26
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
08.03.2019, 11:55
Как вариант:
создать массив из 3 символов:
C++
1
char Massiv[4] = {0};
и перебирать переменными эти числа из дано(1, 2, 6).

Добавлено через 34 секунды
Каковы Ваши знания в C++?

Добавлено через 3 минуты
Циклами надо перебирать эти цифры из исходных данных(1, 2, 6).
Самый наружный цикл:
C++
1
2
3
4
5
int Digits;  //Количество знаков в выходном числе
for(Digits = 1; Digits <= 3; Digits++)
{
 
}
1
Гвоздь Задиров
 Аватар для Folian
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
08.03.2019, 11:55
Цитата Сообщение от Дмитрий2048 Посмотреть сообщение
1, 2, 6(1, 2, 6, 11, 12, 16, 21, 22, 26, 61 ,62 ,66, 111....)
Это ж будет около 2019 в троичной системе, только символы не 1/2/3, а 1/2/6. Забавно) Сейчас попробую)

А, не, не совсем)
0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
08.03.2019, 11:58
Внутри будут циклы, которые будут менять переменные на 1, эти переменные будут как-бы указывать на те цифры из исходных данных. - Они их будут брать по-очереди слева направо.
Цифры в исходных данных будут занесены в массив(ID).
C++
1
2
#define MAX 3
int ID[MAX] = {1, 2, 6};  //Массив, сразу с инициализацией
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
08.03.2019, 11:59
Цитата Сообщение от FFPowerMan Посмотреть сообщение
создать массив из 3 символов
Не маловато будет? Комбинаций из 3 элементов всего https://www.cyberforum.ru/cgi-bin/latex.cgi?4 \cdot 4 \cdot 3 = 48, а ТС просит 2019-ю по счету.
0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
08.03.2019, 11:59
Цитата Сообщение от Folian Посмотреть сообщение
Это ж будет около 2019 в троичной системе,
- как считаете, сколько будет выходных комбинаций? По какой формуле? Это размещение без повторений?
0
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 4
08.03.2019, 12:00  [ТС]
минимальные(( вот все что получилось на данный момент





#include <iostream>

using namespace std;


bool find_value_in_arr(int value, const int * arr, const int N){
int temp;

for (int i=0;i<N;i++){
if (value == arr[i]) return true;
}

return false;
}


bool find_number(int value, const int *arr, const int N){
int temp;
while (value){
temp = value % ;
value/=;

if (!find_value_in_arr(temp,arr,N)) return false;
}
return true;
}


int main()
{

//
int arr[] = {1,2,6};
const int N = sizeof(arr)/sizeof(*arr);
int my_count;
cout << "input count: ";
cin >> my_count;

for (int i=1;i<my_count;i++){
if (find_number(i,arr,N)) cout << i << '\n';
}
}
0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
08.03.2019, 12:08
Тэги кода поставьте. Этот код Вы лично написали?

Добавлено через 1 минуту
Цитата Сообщение от valen10 Посмотреть сообщение
Не маловато будет?
- это комбинация для 1 элемента множества выходных элементов.
Цитата Сообщение от valen10 Посмотреть сообщение
Комбинаций из 3 элементов всего, а ТС просит 2019-ю по счету.
- как тут считать? По какой формуле? Вы по какой формуле считали?
0
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 4
08.03.2019, 12:13  [ТС]
не совсем ,с помощью тоже,я плохо разбираюсь в программировании,я пытался сам но не идет
0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
08.03.2019, 12:14
Для исходных элементов у меня получилось 64 значения. Размещение с повторениями. добавляем 0, т.о. получаем 4 элемента в исходных данных. Формула A = n^k. k = 3 - 3 места. Т.о. n^k = 4^3 = 64. Понятно? Предлагайте свои теории, только объясняйте попроще, ладно?

Добавлено через 1 минуту
Цитата Сообщение от Дмитрий2048 Посмотреть сообщение
не совсем ,с помощью тоже,я плохо разбираюсь в программировании,я пытался сам но не идет
- а в математике хорошо разбираетесь? Если хорошо, то напишите формулы, по которым тут нужно считать. Хотя бы количество комбинаций.
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
08.03.2019, 12:16
Цитата Сообщение от FFPowerMan Посмотреть сообщение
как тут считать? По какой формуле?
На первом место обязательно должна быть цифра (одна из трёх), на остальных местах цифра или пусто (т.е. 4 варианта). Перемножаем возможные варианты: для каждой из 3 цифр на первом месте можно в пару поставить 4 значения на второе, и для каждой из пар еще 4 значения на 3-м месте.

Если есть желание перебирать все варианты и отсчитывать 2019-й, то можно взять что-нибудь безразмерное вроде вектора. Ну или посчитать, сколько там понадобится элементов, чтобы получить 2019 или более вариантов (https://www.cyberforum.ru/cgi-bin/latex.cgi?4 \cdot 4 \cdot 4 \cdot 4 \cdot 4 \cdot 3 = 3072, 6 элементов должно хватить).
0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
08.03.2019, 12:22
Цитата Сообщение от valen10 Посмотреть сообщение
цифра или пусто
- цифра или 0, да.

Добавлено через 3 минуты
Valen10, я посчитал по формуле из Интернт: "Размещение с повторениями" Формула A = n^k. Мое сообщение №10. Я неправильно посчитал? Как правильно тогда?
0
Гвоздь Задиров
 Аватар для Folian
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
08.03.2019, 12:24
Цитата Сообщение от FFPowerMan Посмотреть сообщение
- как считаете, сколько будет выходных комбинаций? По какой формуле? Это размещение без повторений?
Я не силён в комбинаторике, но причем тут это? Тут же одно число нужно.

тут 4-ая СС с хитрым пропуском нулей. Нужно прибавить к числу(n) кол-во чисел с нулями, встречающихся на промежутке 1...n и перевести в 4-СС
0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
08.03.2019, 12:27
А сколько мест для цифр вообще? Или это безразмерная величина?
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
08.03.2019, 12:28
Цитата Сообщение от FFPowerMan Посмотреть сообщение
цифра или 0
Только нуля среди них нет. Поэтому и у меня получилась ошибка: отсутствовать цифра может только вначале, в середине не может быть пустого места. Исправляюсь: https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=1}^{7} 3^{i} = 3279. В частности, для 1 цифры всего 3 варианта, для 1 или 2 - 12 вариантов и т.д.
1
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
08.03.2019, 12:34
Цитата Сообщение от Folian Посмотреть сообщение
тут 4-ая СС с хитрым пропуском нулей. Нужно прибавить к числу(n) кол-во чисел с нулями, встречающихся на промежутке 1...n и перевести в 4-СС
- Это комбинаторика и есть. Нужно в ней уметь разбираться.
Вот про 0 я тоже так подумал, ведь если добавлять 0, то первое число будет: "000" - для 3 мест или символов.
И там в остальных числах тоже будут нули мелькать: "001", "002"...

Добавлено через 3 минуты
Мне кажется сначала нужно определиться сколько мест-символов для чисел 1 результата. Или тут безразмерная величина - лишь бы только 2019 число достигнуть?
1
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 4
08.03.2019, 12:36  [ТС]
безразмерная величина ,лишь бы узнать 2019,без 0 ,например число 1062 не подходит
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
08.03.2019, 13:01
Лучший ответ Сообщение было отмечено Дмитрий2048 как решение

Решение

Проверяйте, получил комбинацию 2162166 для позиции 2019, могу и ошибаться конечно.
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
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
void brute_force(size_t len, size_t &n, const vector<char> &item_set, string res = string()) {
    for (auto item : item_set) {
        if (!n) {
            return;
        }
 
        if (((!res.empty()) || (len == 1)) && (item == ' ')) {
            continue;
        }
 
        if (len > 1) {
            if (item == ' ') {
                brute_force(len - 1, n, item_set, res);
            }
            else {
                brute_force(len - 1, n, item_set, res + item);
            }
        }
        else {
            --n;
 
            if (!n) {
                cout << res << item << endl;
            }
        }
    }
}
 
int main() {
    size_t n;
    cin >> n;
 
    unsigned len = 0;
    for (size_t x = 0, top = 3; x < n; x += top, top *= 3, ++len);
 
    vector<char> item_set = {' ', '1', '2', '6'};
 
    brute_force(len, n, item_set);
 
    return 0;
}
0
Гвоздь Задиров
 Аватар для Folian
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
08.03.2019, 13:53
Вот что я имел в виду:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    int ch[3] = {1,2,6};
 
//  for(int i=0; i<100; i++)
    {
        std::string str;
        int n = 2019;
        
        while(n)
        {
            n--;
            str = std::to_string(static_cast<long long>(ch[n%3])) + str; /* куда и как записывать - дело второе, */
            n/=3;
        }
        std::cout << "\n" << str;
    }
0
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
08.03.2019, 15:06
Цитата Сообщение от valen10 Посмотреть сообщение
Проверяйте, получил комбинацию 2162166 для позиции 2019, могу и ошибаться конечно.
- у меня получилось 2162211.
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
using namespace std;
 
#define MAX 2  //последнее число в числах (1, 2, 6) при нумерации от 0, т.е. 0, 1, 2
#define K 2020   //2020
int main()
{
  int x, n = 0, ptr = 0, posl, mptr, p;
  char M[3] = {'1', '2', '6'}, Res[K][12] = {0};
 
  strcpy(Res[n], "1");
  for(n = 1; n < K; n++)
  {
      strcpy(Res[n], Res[n-1]);
      ptr = 0;
      while(Res[n][ptr+1])  //ставим ptr на последнее число
          ptr++;
      posl = ptr;
      while((Res[n][ptr] == M[MAX]) && (ptr > -1))  //если числа максимальные. то идем влево
          ptr--;
 
      //Сдвиг строки вправо на 1 разряд
      if(ptr == -1)
      {
          x = posl;
          while(x >= 0)
          {
              Res[n][x+1] = Res[n][x];
              x--;
          }
          posl++;
          Res[n][0] = '1';
          for(p = 1; p <= posl; p++)
              Res[n][p] = '1';
          ptr = posl;
          continue;
      }
 
 
 
      //+1
      mptr = 0;
      while(Res[n][ptr] != M[mptr])
          mptr++;
      mptr++;
      Res[n][ptr] = M[mptr];
      if(ptr != posl)
      {
        //Перелетели до ptr числа
        ptr++;
        do{
         Res[n][ptr] = M[0];
         ptr++;
        }
        while(ptr != (posl+1));
 
      }
  }
 
  //Вывод данных
  cout << "\n\n";
  for(n = 0; n < K; n++)
  {
      cout << n << ": " << Res[n] << "\n";
  }
 
  system("pause");
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.03.2019, 15:06
Помогаю со студенческими работами здесь

Найти номер первого члена последовательности, который отличается от предыдущего члена не более чем на заданное значение
Рассмотрим последовательность, образованную дробями: 1/1, 2/1, 3/2, ..., в которой числитель (знаменатель) следующего члена...

Процедуры. В интервале найти кол-во чисел, составленных из цифр a,b,c
В интервале , где 210&lt;N&lt;231, найти кол-во чисел, составленных из цифр a,b,c. Надеюсь на вашу помощь! :)

Найти в заданном интервале количество чисел, составленных из цифр a, b, c
На отрезке (210 &lt; N &lt; 231) найти количество чисел, составленных из цифр а, b, с

Найти количество возможных чисел составленных из цифр данного числа
дан номер &quot;n&quot;. найти количество комбинации его чисел. например если n равен 123 то у 1, 2, 3 6 комбинации. напишите пожалуйста код данной...

Найти количество шестизначных билетов у которых сумма первых 3 десятичных цифр равно сумме трех последних десятичных цифр
3) дданы целые положительные M и N (100000&lt;=M&lt;= N) найти колличество билетов с 6-и значными номерами от M до N у которых сумма первых 3...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru