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

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

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

 
 Ответить  Открыть новую тему 
> Помогите решить задачу на цикл
Гость_Den
сообщение 24.01.2005 18:14
Сообщение #1


Гость






Даны целые числа m, a1, ..., a20. Найти три натуральных числа i, j, k, каждое из которых не превосходит 20, такие, что ai+aj+ak=m. Если такихчисел нет, то сообщить об этом.
 К началу страницы 
+ Ответить 
klem4
сообщение 24.01.2005 18:41
Сообщение #2


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

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

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


Вот так можно попробовать :

Код
uses crt;
const n=5;
var a:array[1..n] of integer;
   i,j,k:integer;
   m:integer;
   flag:boolean;
   nfind1,nfind2,nfind3:integer;

Begin
  clrscr;
  readln(m);
  for i:=1 to n do
   readln(a[i]);
  i:=1;
  while (i<=n-1)and(not(flag)) do
   begin
      j:=i+1;
      while (j<=n-2)and(not(flag)) do
       begin
          k:=j+1;
          while (k<=n)and(not(flag)) do
           begin
              if a[i]+a[j]+a[k]=m then
               begin
                  flag:=true;
                  nfind1:=i;
                  nfind2:=j;
                  nfind3:=k;
               end;
              inc(k);
            end;
           inc(j);
       end;
      inc(i);
  end;
  writeln;
  if not(flag) then writeln('NO')
   else
      begin
         writeln('i=',nfind1);
         writeln('j=',nfind2);
         writeln('k=',nfind3);
      end;
  readln;
end.


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


Гость






klem4
Программа, идентичная твоей:
Код
uses crt;
const n=20;
var
 a:array[1..n] of integer;
 i,j,k:integer;
 m:integer;

Begin
 clrscr;
 readln(m);
 for i:=1 to n do
   readln(a[i]);
 for i := 1 to n - 1 do
   for j := i + 1 to n - 2 do
     for k := j + 1 to n do
       if a[i]+a[j]+a[k]=m then
         begin
           writeln( 'i = ', i, ' j = ', j, ' k = ', k ); exit
         end;
 writeln('no');
 readln;
end.

А если не видно разницы, зачем писАть больше? ;)
 К началу страницы 
+ Ответить 
klem4
сообщение 24.01.2005 19:16
Сообщение #4


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

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

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


Хех, я тоже так сначала хотел написать, но потом вспомнил, что мне бы снизили бал в универе если бы я решил эту задачу через for и за exit.

Ведь как говорит наш велекий и могучий препод : цикл for нужно употреблять только в тех случаях, когда точно известно кол-во итераций цикла.

Хотя... кто его знает, мне конечно короткий вариант больше нравится smile.gif

Сообщение отредактировано: klem4 - 24.01.2005 19:24


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


Бывалый
***

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

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


//offtop
Ну и лох же твой препод.... из-за таких как он на этом форуме чило Closed Topics повышается не по дням а по часам :fie: :ypr:

Сообщение отредактировано: Digitalator - 29.01.2005 0:01


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 28.04.2024 13:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"