Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2

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

09.02.2014, 22:32. Показов 1655. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите дан массив натуральный чисел. Найти минимально натуральное число которое не может быть представлено суммой ни каких з данных чисел если в эту сумму каждое выводное число может входить не больше одного раза.
пример
4 {количество натуральных чисел}
1 5 1 1
ответ 4

4
2 4 8 1
ответ 16
Вначале все числа массива надо отсортировать! Помогите с функцией определения
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.02.2014, 22:32
Ответы с готовыми решениями:

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

Дано натуральное число n, которое может быть представлено суммой чисел 1, 2, 3, 5, 10, 15, 20 и 50. Требуется найти самое короткое представление n
По идеи, нужно разбить число n на сумму чисел и выбрать ту сумму, в которой меньше слагаемых. Но как сделать так, чтобы среди слагаемых...

Найти максимальное число которое может быть представлено как сумма степеней 2, 3 и 4 простых чисел
Найти максимальное число, меньшее заданного, которое может быть представлено как сумма степеней 2, 3 и 4 простых чисел (минимальное такое...

11
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2
14.02.2014, 18:58  [ТС]
Очень надо помощь мне это на завтра!
0
Заблокирован
14.02.2014, 19:04
code-n'-help, если нужна только идея — сортировка тут бесполезна. Нужно перебрать все подмножества и записать сумму каждого из них. После этого можно будет легко найти первое число, не входящее в множество записаных сумм. Это тривиальное решение, которое, наверняка, от вас и ожидается.
0
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2
14.02.2014, 19:25  [ТС]
Цитата Сообщение от raccoonlove Посмотреть сообщение
code-n'-help, если нужна только идея — сортировка тут бесполезна. Нужно перебрать все подмножества и записать сумму каждого из них. После этого можно будет легко найти первое число, не входящее в множество записаных сумм. Это тривиальное решение, которое, наверняка, от вас и ожидается.
Всё еще проще
Но мне надо помощь с моим кодом он в некоторых случаях выдаёт ошибку помогите сделать программу правильно. Вот я реализовал идею записи в доп массив единиц. Но иногда выдаёт ответ не верный. идея была в одномерный массив записать так, что если координаты у нас 1 и 3 то в точки 2 и 3 я записываю 1и потом подсчитываю но вот мне выдаёт когда пишу размер 2
1 3
2 4
ответ 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
29
30
31
32
program cover;
 
{$APPTYPE CONSOLE}
type Tmas=array [1..10000,1..2] of longword;
     edinichniymas=array [1..100000] of byte;
Function zapoln(Mas:tmas;n:word):longword;
var i,j:longword; One:edinichniymas;  counter:longword; k:longword;
begin
  counter:=0;
  fillchar(one, sizeof(one), 0);
  for i:=1 to n do
    for j:=Mas[i,1]+1 to Mas[1,2] do
    if Mas[i,1]-1<>Mas[i,2]
    then one[j]:=1;
  for i:=1 to 10000 do
  if one[i]=1
  then inc(counter);
  if (counter<>0) or (counter<>-1)
  then zapoln:=counter
  else zapoln:=0;
end;
 
var i,j:word; n:word; A:tmas;
begin
  read(n);
  for i:=1 to n do
    for j:=1 to 2 do
    read(A[i,j]);
  write(zapoln(A,n));
  readln;
  readln;
end.
2
Заблокирован
14.02.2014, 19:29
Цитата Сообщение от code-n'-help Посмотреть сообщение
Но иногда выдаёт ответ не верный.
Очевидно, не верна идея.
0
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2
14.02.2014, 21:04  [ТС]
Цитата Сообщение от raccoonlove Посмотреть сообщение
Очевидно, не верна идея.
А может я просто сделал не так ??? Не, не приходила идея?
0
142 / 148 / 116
Регистрация: 15.11.2012
Сообщений: 537
Записей в блоге: 2
14.02.2014, 21:25
code-n'-help,
этот вид задачи называется - выборки!
Глава 5-я Книги "Виталий Потопахин - Turbo Pascal Решение сложных задач"
1
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2
14.02.2014, 21:31  [ТС]
Цитата Сообщение от orange_rush Посмотреть сообщение
code-n'-help,
этот вид задачи называется - выборки!
Глава 5-я Книги "Виталий Потопахин - Turbo Pascal Решение сложных задач"
Кто-нибудь может просто помочь с кодом?
0
142 / 148 / 116
Регистрация: 15.11.2012
Сообщений: 537
Записей в блоге: 2
14.02.2014, 21:59
суть задачи:
для массива чисел создается дополнительный двоичный массив такой же размерности.
двоичный массив обнуляется и постоянно увеличивается на единицу.
Параллельно с каждым таким шагом в массиве исходных чисел складываются те числа, которым соответствуют единицы в двоичном.
Таким образом мы получаем все возможные неповторяющиеся выборки. их получается 2 в степени N(размерность массива)
Остаётся записать в отдельный массив все выборки и сравнить его с массивом исходных чисел.
1
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2
14.02.2014, 22:29  [ТС]
Кто нибудь с реализацией этого алгоритма сможет помочь?
0
142 / 148 / 116
Регистрация: 15.11.2012
Сообщений: 537
Записей в блоге: 2
15.02.2014, 01:19
Лучший ответ Сообщение было отмечено code-n'-help как решение

Решение

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
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
uses crt;
const n=10;
type TArrayInt = array[1..n] of Integer;
    TArrayByte = array[1..n] of byte;
var
    a:TArrayInt;
    flag:TArrayByte;
    i,k:integer;    sum:LongInt; 
    f:boolean;
 
function nepolon(p:TArrayByte):boolean;
var i:Integer; f:boolean;
Begin f:=false;
for i:=1 to n do
    if p[i]=0 then f:=true;
nepolon:=f;
End;
 
procedure next_vyborka(p:TArrayByte);
  var i,j:Integer;
  Begin
    i:=1; While (flag[i]=1)and(i<=n) do
                                i:=i+1;
    if not(i>n) then begin
      flag[i]:=1; for j:=i-1 downto 1 do
                            flag[j]:=0;
    end;
  End;
  
    
  function get_vyborka(p:TArrayInt):LongInt;
var i:Integer; sum:Longint;
Begin 
    sum:=0;
    for i:=1 to n do 
            if flag[i]=1 then sum:=sum+p[i];
    get_vyborka:=sum;
End;
  
Procedure Sort(var p:TArrayInt);
Var k,kk,t:Integer;
Begin
    for k:=1 to N do
        for kk:=1 to n-1 do
          if p[kk]>p[kk+1] then begin
                    t:=p[kk]; p[kk]:=p[kk+1];
                    p[kk+1]:=t; end;
End;
 
Procedure make_random_array(var p:TArrayInt);
var i:Integer;
Begin for i:=1 to N do p[i]:=Random(20)+1; End;
 
Procedure Obnulenie(var p:TArrayByte);
Var i:Integer;
Begin for i:=1 To n do p[i]:=0; End;
 
Procedure Print (p:TArrayInt);
var i:Integer;
Begin for i:=1 to N Do Write(p[i]:3); Writeln; End;
 
  { Implementation}
BEGIN
clrscr;
randomize;
make_random_array(a);
Print(a);
Sort(a);
Print(a);
i:=0;
Repeat
    i:=i+1;
    Obnulenie(flag);
  f:=true;
    While nepolon(flag)and f do begin
    next_vyborka(flag);
    sum:=get_vyborka(a);
        if i=sum then f:=false;
    End;
Until f;
writeln;
writeln(i);
readln;
END.
Добавлено через 2 минуты
функция next_vyborka создает следующую неповторяющуюся выборку,
а функция nepolon смотрит - все ли комбинации отработаны или нет.
Obnulenie - обнуляет двоичный массив, чтобы снова дать возможность начать просматривать выборки
get_vyborka - смотрит, где в двоичном счетчике еденицы, чтобы в числовом массиве сложить числа находящийеся на соотв. позициях, тем самым создав очередную неповторяющуюся сумму
1
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2
15.02.2014, 08:55  [ТС]
Очень нужно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2014, 08:55
Помогаю со студенческими работами здесь

Java2 может ли целое число быть представлено каким-либо произведением цифр, входящих в это число
Разбираю задачу..... Есть код, но некоторые моменты мне не понятны...... Определить функцию для проверки может ли целое число быть...

Реализуйте:может ли заданное целое число быть представлено в виде суммы квадратов двух целых
/*Реализуйте метод, проверяющий, может ли заданное целое число быть представлено в виде суммы квадратов двух целых чисел.*/ Пока...

2. Дано натуральное число. Найти количество цифр данного числа. Результат в АХ. (Число может быть двухзначным, трехзначным и т.д.)
2. Дано натуральное число. Найти количество цифр данного числа. Результат в АХ. (Число может быть двухзначным, трехзначным и т.д.)

Поле Чудес - найти минимальное число секторов, которое может быть на барабане
Привет форуму, у меня вот такая &quot;весёлая&quot; проблемка... :wall: Есть задача: Поле чудес Для игры в «Поле чудес» используется...

Найти натуральное число представимое двумя разными способами суммой кубов двух чисел
Найти натуральное число n, которое подается двумя разными способами суммой кубов двух натуральных чисел:n = x^3 + y^3 (x&lt;=y) ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru