IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> нахождение суммы, Срочно!!!
сообщение
Сообщение #1


Учиться, учиться еще раз учиться
***

Группа: Пользователи
Сообщений: 158
Пол: Мужской
Реальное имя: Яшар

Репутация: -  3  +


Срочно wacko.gif ...пожалуйста помогите мне решить задачу... unsure.gif
из заданных 9 чисел нужно найти 7 из них сумма которых равна 100
Спасибо за ранее... smile.gif


--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


как же мы можем помочь, если ты ничего не делаешь?
написать за тебя - это не помощь!


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Учиться, учиться еще раз учиться
***

Группа: Пользователи
Сообщений: 158
Пол: Мужской
Реальное имя: Яшар

Репутация: -  3  +



var
ar : array[1..9] of integer;
i, j, k, sum : integer;

begin
sum := 0;
for i := 1 to 9 do
begin
readln( ar[i] );
sum := sum + ar[i];
end;

for i := 1 to 9 do
for j := i+1 to 9 do
if sum -(ar[i] + ar[j]) = 100 then
for k := 1 to 9 do
writeln( аr[k] );
end.


Вот кое что есть lol.gif но чего то маленького не хватает... rolleyes.gif


--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  3  +


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


CONST n=9;

VAR
count: array [1..n] of word;
s: longInt;
i, j, k: byte;
flag: boolean;

BEGIN
{вводим 9 чисел и считаем их итоговую сумму}
s:=0;
for i:=1 to n do
begin
write (i,' ->');
readLn (count[i]);
s:=s+count[i]
end;

flag:=false;
i:=0;
{если итоговая сумма оказалась меньше 100, значит выходим}
if s<100
then flag:=true;
{вычитаем из итоговой суммы 2 других элемента, таким образом по завершению в i и j номера лишних элементов}
while (not flag) and (i<=n) do
begin
inc (i);
j:=i;
while (not flag) and (j<=n) do
begin
inc (j);
if (s-count[i]-count[j])=100
then flag:=true
end
end;

if (i=0) or (not flag)
then writeLn ('no variants')
else
begin
for k:=1 to n do
if (k<>i) and (k<>j)
then write (count[k], ' ');
writeLn (' obrazuiyt symmy 100')
end;

END.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


КМА, а знаешь, что нужно сделать, чтобы работало для всех чисел, а не только для положительных? Как делают скульпторы - отсечь лишнее.. smile.gif
Убери вот эти строки:

{если итоговая сумма оказалась меньше 100, значит выходим}
if s<100


Тут проверка i тоже лишняя:

if (i=0) or (not flag)




--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  3  +


Да, я это понял...

Я это уже дорешал, но не было сил дописать решение. Спасибо Lapp.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Вот такой вариант еще:

const
n = 9;
type
TArray = array [1..n] of Integer;

function Sum(const arr: TArray; const a, b: Integer): Integer;
var
i, s: Integer;
begin
i := 1; s := 0;
while (i <= n) and (s <= 100) do begin
if (i <> a) and (i <> b) then inc(s, arr[i]);
inc(i);
end;
Sum := s;
end;

var
x: TArray = (25, 10, 25, 29, 1, 98, 5, 5, 56);
a, b: Integer;
flag: Boolean;

begin
a := 1; flag := false;

while (a <= n - 1) and not(flag) do begin
b := a + 1;
while (b <= n) and not(flag) do begin
flag := Sum(x, a, b) = 100;
if not(flag) then inc(b);
end;
if not(flag) then inc(a);
end;

if a <= n - 1 then writeln('Все числа, кроме ', x[a], ' и ', x[b])
else writeln('Решения нет');
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 30.11.2020 5:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name