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

Определить какое число будет стоять на 135424 месте

20.10.2019, 17:22. Показов 5451. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В ряд в порядке возрастания выписали все семизначные числа.Потом те из них,в записи которых встречаются цифры 0,7,8 или 9 вычеркнули. Какое число будет стоять на 135424 месте?

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
#include<iostream>
 
using namespace std;
 
int main()
{
int j,a,b,c,d,e,f,g,i;
int arr[9999999],brr[9999999];
for(j=0;j<=9999999;j++){
    for(i=0;i<=9999999;i++){
        for(arr[i]=10000000;arr[i]<=9999999;arr[i]++){
            for(brr[j]=1000000;brr[j]<=9999999;brr[j]++){
                        a = arr[i] / 1000000;
                    b = (arr[i] - a * 1000000) / 100000;
                    c = (arr[i] - a * 1000000 - b * 100000) / 10000;
                    d = (arr[i] - a * 1000000 - b * 100000 - c * 10000) / 1000;
                    e = (arr[i] - a * 1000000 - b * 100000 - c * 10000 - d * 1000) / 100;
                    f = (arr[i] - a * 1000000 - b * 100000 - c * 10000 - d * 1000 - e * 100) / 10;
                    g = (arr[i] - a * 1000000 - b * 100000 - c * 10000 - d * 1000 - e * 100 - f * 10);
                                if( a==0 || b==0 || c==0 || d==0 || e==0 || f==0 || g==0 ||
                             a==7 || b==7 || c==7 || d==7 || e==7 || f==7 || g==7 || 
                              a==8 || b==8 || c==8 || d==8 || e==8 || f==8 || g==8 ||
                               a==9 || b==9 || c==9 || d==9 || e==9 || f==9 || g==9){
                                cout<<"Это число не подходит";
                    }
            else{
                arr[i]=brr[j];
                cout<<brr[135424];
            }       
    } 
}
}
}
return 0;
}
Добавлено через 6 минут
не могу найти ошибку,и тем более,облегчить код
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2019, 17:22
Ответы с готовыми решениями:

По заданым N и K найти какая цифра будет стоять N-ой строке на K-ом месте и вывести её
Ограничения по времени: 2 секунды Ограничения по памяти: 256 megabytes Строки (цепочки цифр) создаются по следующему правилу. Первая...

Определить, какое число в последовательности стоит на n-ом месте?
2. Какое число в последовательности 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, … стоит на N-м месте?

Определить, какое число-палиндром стоит на n-м месте
Расставить все числа-палиндромы в порядке возрастания. Задача состоит в том, чтобы определить, какое число стоит на n-м месте. Вводим номер...

25
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
20.10.2019, 17:38
shifttops, зачем Вы опять пишите громоздкий код, если Вам уже показано как находятся цифры числа:
Найдите количество 7-значных чисел, произведение цифр которых делится на 20

какой смысл Вам что-то объяснять, если Вы не воспринимаете инф ?
2
Злостный нарушитель
 Аватар для Verevkin
10345 / 5763 / 1271
Регистрация: 12.03.2015
Сообщений: 26,615
20.10.2019, 17:44
Цитата Сообщение от Yetty Посмотреть сообщение
какой смысл Вам что-то объяснять, если Вы не воспринимаете инф ?
Прям с языка снял!

1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
20.10.2019, 18:47
shifttops, попробуйте представить 135424 в 6-ричной системе счисления.
1
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,022
21.10.2019, 01:46
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  long count = 0, n;  // счетчик count и искомое число n
  for (long i = 1000000; i <= 9999999; i++)  // проверяем 7-значные числа
  {
    long temp = i;  // текущее число
    for (int j = 1; j <= 7; j++)  // проверяем цифры числа
    {
      if (temp % 10 > 0 && temp % 10 < 7)  // если цифра не 0, 7, 8 или 9
      {
        temp /= 10;  // "отсекаем" только что проверенную цифру
        if (j == 7)  // если все 7 цифр не 0, 7, 8 или 9
          count++;  // увеличиваем счетчик
      }
      else  // если цифра 0, 7, 8 или 9
        break;  // завершаем проверку числа
    }
    if (count == 135424)  // если счетчик достиг нужного номера
    {
      // запоминаем число
      n = i;  // n - искомое число (получаем значение 3633654)
      break;  // завершаем проверку чисел
    }
  }
0
фрилансер
 Аватар для Алексей1153
6455 / 5657 / 1129
Регистрация: 11.10.2019
Сообщений: 15,073
21.10.2019, 08:33
gunslinger, мой внутренний компилятор взбрыкнул на некоторые строки

1 строка - нет инициализации
5-7 строки - заменяем на for(;temp;temp/=10) , j не нужен
11 строка - после count++ надо break, иначе одно число может 7 раз посчитаться
0
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
21.10.2019, 08:57
Цитата Сообщение от Байт Посмотреть сообщение
попробуйте представить 135424 в 6-ричной системе счисления.
цифру 6 потеряли в числе.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.10.2019, 09:01
Задача с ехидцей
Ее несложно решить просто на бумажке. У меня получилось 3633655
Есть 6 цифр 123456 (они могли бы быть у другими). k-значных чисел ими образованных существует 6k
Значит на каждую цифру в первой позиции приходится 66 = 46656 6-ти значных в оставшихся позициях.
135424 / 46656 = 2 остаток 42112 - первая цифра = 3
Продолжаем: 42112 / 7776 = 5 остаток 3232 вторая - 6
3232 / 1296 = 2 остаток 640 - 3
640/216 = 2 остаток 208 - 3
208/ 36 = 5 остаток 28 - 6
28 / 6 = 4 rest 4 - 5
4/ 1 = 4 - 5
Желающие могут проверить бру-форсным перебором (если времени не жалко). Мог и ошибиться - в уснтом счете никогда не был особенно силен.
Конечно, все эти вычисления несложно запрограммировать, но программа будет выполняться не часами, а даст ответ мгновенно.
ЗЫ. Приведенный алгоритм есть в самом деле алгоритм представления числа в 6-ричной с-с, только "в профиль"
Всем удачи!
0
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
21.10.2019, 09:09
Байт, в шестеричной системе нет цифры шесть, а нам она нужна по условию.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.10.2019, 09:27
Цитата Сообщение от повар1 Посмотреть сообщение
а нам она нужна по условию.
Где, кому и зачем?

Добавлено через 3 минуты
повар1, Смотри. Есть цифры a b c d e f (возрастающие). Это могли бы быть 2 4 5 7 8 9
Получаю очередную 6-ричную цифру представления и использую ее как индекс в этом массиве.
Ферштейн? Если нет, посмотри внимательнее пост 8.
0
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
21.10.2019, 09:46
Байт, тупым перебором число равно 3633465
0
фрилансер
 Аватар для Алексей1153
6455 / 5657 / 1129
Регистрация: 11.10.2019
Сообщений: 15,073
21.10.2019, 09:49
мой вариант перебора, результат - тоже значение 3633654
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
#include <cmath>
auto count_numbers()
{
    std::pair<long,bool> found{0,false};
 
    const long digits_count=7;
    const long position_to_check=135424;
    const long from=std::pow(10,digits_count-1);
    const long to  =std::pow(10,digits_count)-1;
    long numbers_passed_count=0;
    for(long curr_enum=from; curr_enum<=to; curr_enum++)
    {
        long curr_processed=curr_enum;
        bool dropped=false;
        for(;curr_processed;curr_processed/=10)
        {
            const long digit=curr_processed%10;
 
            if(digit==0){dropped=true; break;}//вычеркнули
            if(digit>=7 && digit<=9){dropped=true; break;}//вычеркнули
        }
 
        if(!dropped)
        {
            //посчитали
            numbers_passed_count++;
 
            if (numbers_passed_count == position_to_check)
            {
                found=std::make_pair(curr_enum,true);
                return found;
            }
        }
    }
 
    return found;
}
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.10.2019, 10:41
повар1, Алексей1153,
Цитата Сообщение от Байт Посмотреть сообщение
Мог и ошибиться - в устном счете никогда не был особенно силен.
Возможно. Я предупреждал.
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
21.10.2019, 10:50
О, такое уже решалось, тут Найти значение члена последовательности чисел составленных из заданных десятичных цифр

если чуток изменить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    const int sz = 6;
    int ch[sz] = {1,2,3,4,5,6};
 
    
    std::string str;
 
    int n = 135424;
 
    while(n)
    {
        n--;
        str = std::to_string(static_cast<long long>(ch[n%sz])) + str;
        n/=sz;
    }
    std::cout << "\n" << str;
получается 2522544
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.10.2019, 10:58
Folian, Ошибочка. Надо к цифрам единичку прибавлять. В общем случае см. пост 10.
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
21.10.2019, 10:59
Цитата Сообщение от Folian Посмотреть сообщение
получается 2522544
Не, не получается, это 135424 с самого начала, а не только в семизначных; нужно поправить
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.10.2019, 11:01
Но идея, да, та же. Перевод в 6-ричную с-с (или сколько там цифер)
Если в наборе оставшихся цифр присутствует 0, чуток посложнее. Но не намного.
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
21.10.2019, 11:09
Цитата Сообщение от Байт Посмотреть сообщение
Ошибочка. Надо к цифрам единичку прибавлять. В общем случае см. пост 10.
Эта штука работает как нужно только от начала, а не от 1000000 Нужно ещё поковыряться))
Миниатюры
Определить какое число будет стоять на 135424 месте  
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
21.10.2019, 11:40
Ощем прикрутил ужасный и громоздкий костыль, который подкручивает 1111111, т.е., по сути смещает исходную точку моего одометра, о бжчки, меня только что осенило: нужно же тупо сместить цифры

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    const int sz = 6;
    int ch[sz] = {2,3,4,5,6,1};
 
    std::string str;
 
    int n = 135424;
 
 
        while(n)
        {
            n--;
            str = std::to_string(static_cast<long long>(ch[n%sz])) + str;
            n/=sz;
        }
        std::cout << "\n" << n << ":" << str << "\n";
Кликните здесь для просмотра всего текста

тут живут костыли
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
    const int sz = 6;
    int ch[sz] = {1,2,3,4,5,6};
 
    
    std::string str;
 
    int n = 135424;
 
 
        while(n)
        {
            n--;
            str = std::to_string(static_cast<long long>(ch[n%sz])) + str;
            n/=sz;
        }
        std::cout << "\n" << n << ":" << str << "\n";
 
        int x = atoi(str.c_str());
        int arr[20] = {0};
        int count = 0;
 
        while(x)
        {
            arr[count] = x%10;
            ++count;
            x/=10;
        }
 
        for(int i=0; i<7; ++i)
        {
            ++arr[i];
            if(arr[i] > 6)
            {
                arr[i] = 1;
                int n = i;
                while(arr[++n] += 1 > 6)
                {
                    arr[n] = 1;
                }
                
            }
        }
 
        std::cout << "\n\n";
 
        for(int i=19; i>=0; --i)
        {
            if(arr[i]) std::cout << arr[i];
        }
Изображения
  
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
21.10.2019, 11:57
Да, 1111111 - это считается нулевым, так что выходит 3633654 и начальные единицы в строке не отображаются, если числа небольшие подставлять, но это мелочи, вечером поправлю.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2019, 11:57
Помогаю со студенческими работами здесь

Определить, какое число будет через 52 недели
Напишите программу ,которая ничего у вас не спрашивая ,печатает, какое число будет через 52 недели ? и еще одна !!!! Напишите...

Определить какое число будет в позиции №10168
Всем привет, пожалуйста,помогите решить задачу Из последовательности натуральных десятичных чисел вычеркиваются все числа, содержащие 0 в...

По заданной дате требуется определить, какое число будет послезавтра
По заданной дате требуется определить, какое число будет послезавтра. Напомним, что год является високосным, если его номер кратен 4,...

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

Определить, какое число будет напечатано в результате работы следующей программы
Помогите с заданием по ОГЭ Садовник, работая в оранжерее ботанического сада, записывал в таблицу Flow количество видов растений,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru