Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 18
1

Генерировать все k-значные числа, не содержащие одинаковых цифр, кратные 2 и 3

29.06.2012, 18:08. Просмотров 2779. Ответов 5
Метки нет (Все метки)


Помогите, пожалуйста, составить программу. Или объясните очень подробно как это сделать.
Вот задание: Написать программу, которая выполняет задание варианта с помощью генерации всех соответствующих комбинаций, используя комбинаторные алгоритмы.
Если решение не единственное, то вывод комбинаций осуществлять в файл. Во время генерации производить подсчет общего числа сгенерированных вариантов и число вариантов, удовлетворяющих условию задачи, и вывести эти значения на экран.

Мой вариант: Написать программу, которая генерирует все k-значные числа, не содержащие одинаковых цифр, кратные 2 и 3 (k<=10).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2012, 18:08
Ответы с готовыми решениями:

Найти все 3-х значные числа с суммой цифр не менее 10, кратные каждой своей цифре
Среди всех 3х значных чисел найти и напечатать те, которые кратны каждой своей цифре и при этом...

найти все 4-ёх значные числа, в записи которых нет одинаковых цифр
найти все 4-ёх значные числа, в записи которых нет одинаковых цифр....мне нужно алогритм для Visual...

Получить все четырехзначные десятичные числа содержащие не более двух одинаковых цифр
Помогите решить вот такую вот задачку: Получить все четырехзначные числа(1234,например),в которых...

Сгенерировать все k-значные числа, не кратные 3 и 4
Написать программу,которая генерирует все k-значные числа не кратные 3 и 4 (k&lt;=0)

5
153 / 153 / 81
Регистрация: 16.06.2012
Сообщений: 314
30.06.2012, 18:16 2
Pascal
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
Var a : array[1..10] of integer;
    used : array[1..10] of boolean;
    k : integer;
 
Procedure gen(am , sum : integer);
Var i : integer;
Begin
    if am = k then begin
        if (a[1] <> 0) and (a[am] mod 2 = 0) and (sum mod 3 = 0) then begin
            for i := 1 to am do 
                write(a[i]);
            WriteLn;    
        end;    
    end else 
        for i := 0 to 9 do
            if not used[i] then begin
                used[i] := true;
                a[am + 1] := i;
                gen(am + 1 , sum + i);
                used[i] := false;
            end;
End;
 
Begin
    ReadLn(k);
    FillChar(used , sizeof(used) , false);
    gen(0 , 0);
End.
1
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 18
01.07.2012, 02:51  [ТС] 3
Ошибка 14, неверное имя файла. Что с ней делать? Нужно создать файл? Какой?
0
Модератор
62948 / 46960 / 32362
Регистрация: 18.05.2008
Сообщений: 113,786
01.07.2012, 10:08 4
Вообще-то в данном коде вообще нет файлов, это что-то Ваш копилятор бредит. Вы в каком Паскале компилируете?

Добавлено через 1 минуту
Хотя по условию вывод нужно сделать в файл, поскольку при k>2 все решения на экран не входят.
0
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 18
01.07.2012, 13:01  [ТС] 5
У меня есть pascal abc и turbo pascal 7. В первом сначала писал неизвестный идентификатор на fillchar, я исправила на fillmem, он стал писать: неизвестное имя типа "used"(которое самое последнее). В втором паскале: ошибка 14: неверное имя файла. Очень прошу, исправьте, чтобы работало. Я просто в этом не соображаю. Буду очень благодарна.
0
Модератор
62948 / 46960 / 32362
Регистрация: 18.05.2008
Сообщений: 113,786
01.07.2012, 13:16 6
В Турбо Паскале все отлично работает, проверял. Да и нет в коде ничего про файлы, или глючит компилятор или Вы что-то изменили в коде.
Если первое, выкиньте его и скачайте ТП 7.0 здесь
https://www.cyberforum.ru/atta... 1264398243
В Паскаль АВС нужно вместо
Pascal
1
FillChar(used , sizeof(used) , false);
написать
Pascal
1
2
for i:=1 to 10 do
used[i]:=0;
Это просто обнуление массива.

Добавлено через 1 минуту
Судя по всему Вы вообще ничего не знаете, и кто Вам поверит что Вы сами придумали алгоритм генерации...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.07.2012, 13:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Найти 3-значные числа, на которые нужно умножить 777, чтобы получить 6-значное число из одинаковых цифр
Вычислить все трехзначные числа,на которые нужно умножить число 777, чтобы получить шестизначное...

Составить все возможные 4-х значные числа из заданных цифр
Имеются цифры 0, 1, 2, 3. Сколько можно составить 4-х значных чисел и вывести их

Вывести все n-значные числа, сумма цифр которых равна k
Задача такова:Вывести все n-значные числа, сумма цифр которых равна k. Желательно без использования...

Вывести все 2-значные числа, у которых сумма цифр равна 12
Чтобы по 100 раз не писать выложу сразу 6 задач(Разделю на две темы) Напишите только полное...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.