Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 29

Программа проверяющая все возможные комбинации заданного числа

07.12.2018, 08:08. Показов 2535. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать программу которая проверит все возможные комбинации заданного числа(пользователь задаёт сам любое число), а далее проверить каждую комбинацию на делимость на 8
В первой строке дано цело число n (1 ⩽ n ⩽ 103) - длинна числа. Во второй строка дана строка состоящая из цифр s - число которое надо проверить.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2018, 08:08
Ответы с готовыми решениями:

Найти все возможные комбинации шестнадцатизначного числа
не знаю как сделать программу которая найдёт все числа от 0000000000000000 до 9999999999999999 помогите пожалуйста

Найти все возможные комбинации четырехзначного числа
Привет! Помогите! Мне нужно найти все возможные комбинации четырехзначного числа от 0000 до 9999. Спасибо.

Записать в текстовый файл все возможные промежуточные комбинации от числа 79290000000 до числа 79299999999
Добрый день , если возможно написать небольшую програмку , которая перебрала бы и записала куда нибудь ( в блокнот например) все возможные...

10
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.12.2018, 08:14
Наверное не 103, а 103?
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 29
07.12.2018, 08:14  [ТС]
Да, я не заметил, 10^3
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.12.2018, 08:34
Признак делимости на 8. Число делится на 8, если три его последние цифры - нули или образуют число, которое делится на 8.
Если строка короче 3, добавляем в начало '0' пока длина меньше 3, иначе возьмите
strtoint(copy(s,length(s)-2,3)) и проверьте mod 8=0.
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 29
07.12.2018, 08:36  [ТС]
Пришло дополнение по заданию Антон решил придумать свой признак делимости на 8. Антон будет считать что число делится на 8 если существует перестановка цифр числа такая что новое число было без лидирующих нулей и число делится на 8. Вам надо сказать делится ли число на 8 по правилам Антона.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.12.2018, 08:40
Ну проверьте строку на наличие цифр не равных 0, если есть хоть одна, перестановка есть.
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 29
07.12.2018, 10:05  [ТС]
Не получается(
0
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,385
10.12.2018, 02:48
Puporev, 1011, например, ни при какой перестановке не разделится на 8.

Добавлено через 5 часов 6 минут
Мой вариант решения задачи: Вычислить, делится или нет число
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
10.12.2018, 08:41
Я пишу что если есть не 0 то есть такая перестановка когда нет лидирующих нолей(дополнение к задаче), а деление на 8 это ответ в посте номер 4.
0
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,385
10.12.2018, 15:56
Не очень решение в посте #4, если учитывать поиск перестановок, потому что
Цитата Сообщение от max0120842 Посмотреть сообщение
(1 ⩽ n ⩽ 103) - длинна числа
Не берусь сказать, сколько будет уникальных перестановок тысячеразрядного числа, очевидно, точно меньше, чем 1000!, может быть, меньше в (10!*10!)! раз, но, всё равно... Поиск перестановок - это неудачное и очень неэффективное решение для этой задачи, тем более, что искать эти перестановки по заданию, на самом деле, и не требуется. Заголовок темы имеет мало что общего с самим заданием, и ничего общего с реальностью. В худшем случае, для генерации всех перестановок может не хватить человеческой жизни, для их запоминания точно не хватит всех носителей и всей памяти во всём мире, а чтобы вывести их на печать... До смерти вселенной можно и не успеть. Я применил иной подход к решению задачи.
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 29
26.12.2018, 15:33  [ТС]
Всем спасибо, решил задачу, но не в паскале, вот решение :
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "pch.h"
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
 
 
 
 
using namespace std;
 
int main()
{
    bool r;
    int b, temp;
    int c, f;
    int ms[1000];
    cout << "enter array size: ";
    cin >> c;
    cout << "enter array: ";
    if (c == 1) {
        cin >> ms[0];
        if (ms[0] != 0) {
            if (ms[0] % 8 == 0) {
                cout << "yes" << endl;
                exit(1);
            }
            else
            {
                cout << "no" << endl;
                exit(1);
            }
        }
        else
        {
            cout << "0 not allowed" << endl;
            exit(1);
        }
 
    }
    if (c == 2) {
        for (int i = 0; i < c; i++) {
            cin >> ms[i];
        }
        sort(ms, ms + c);
        do {
            if (ms[0] == 0) {
                r = true;
            }
            else {
                r = false;
            }
            if (r == false) {
                b = (ms[0] * 10) + ms[1];
                if (b % 8 == 0) {
                    cout << "yes" << endl;
                    exit(1);
                }
                
            }
        } while (next_permutation(ms, ms + c));
        cout << "no" << endl;
        exit(1);
    }
 
    for (int i = 0; i < c; i++) {
        cin >> ms[i];
    }
    sort(ms, ms + c);
    do {
        
    if (ms[0] == 0) {
                r = true;
    }
    else
    {
        r = false;
    }
    if (r == false) {
        if (ms[c - 4] == 0 and ms[c - 3] == 0 and ms[c - 2] == 0) {
            cout << "yes" << endl;
            exit(1);
        }
        else
        {
            b = (ms[c - 4] * 100) + (ms[c - 3] * 10) + ms[c - 2];
            if ((b % 8) == 0) {
                cout << "yes" << endl;
                exit(1);
            }
        }
    }       
    } while (next_permutation(ms, ms + c));
    cout << "no" << endl;
 
    return(0);
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.12.2018, 15:33
Помогаю со студенческими работами здесь

Найти все возможные комбинации шестизначного числа
Мне нужно найти все возможные комбинации четырехзначного числа от 000000 до 999999.

Вывести все возможные комбинации цифр заданного числа
Введено число. Вывести все возможные комбинации цифр данного числа. Просьба разобраться в каждой строчке этого кода ...

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

Найти все возможные комбинации пятизначного числа.
Есть задача: во-первых, найти кол-во возможных комбинаций пятизначного числа, находящегося в диапазоне от 00001 до 99999, при чем...

Консоль. Вывести все возможные комбинации цифр данного числа
Введено число. Вывести все возможные комбинации цифр данного числа.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru