Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 18:45   #21
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Но, без комментариев...
Код:
Program Numbers;
Uses Crt;
Var
  i,j,k:byte;
  itr:word;
BEGIN
  ClrScr;
  itr:=0;
  for i:=1 to 9 do
    begin
      for j:=0 to 9 do
        begin
          for k:=10-(i+j) to 9 do
            begin
              if i+j+k=10 then
                write(i*100+j*10+k,'  ');
              Inc(itr)
            end
        end
    end;
  writeln;
  writeln;
  Writeln('itr = ',itr);
  writeln('Press any key...');
  repeat
  until KeyPressed
END.
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума
Старый 17.06.2010, 18:50   #22
Warfvare
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 33
По умолчанию

огромное спасибоо хоть еще и незапускал но ето уже завтра))))))
Warfvare вне форума
Старый 18.06.2010, 09:10   #23
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Вот более правильное и оптимальное решение
Всего 219 циклов....
Код:
Program Numbers;
Uses Crt;
Var
  i,j,k:byte;
BEGIN
  ClrScr;
  itr:=0;
  for i:=1 to 9 do
    begin
      for j:=0 to 10-i do
        begin
          for k:=0 to 10-(i+j) do
            if i+j+k=10 then
                write(i*100+j*10+k,'  ')
        end
    end;
  writeln;
  writeln;
  writeln('Press any key...');
  repeat
  until KeyPressed
END.
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума
Старый 18.06.2010, 12:25   #24
Девочка-Скандал
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 42
По умолчанию

По поводу оптимизации- а оно мне надо? Но есть вариант сократить количество ваших циклов в 2 раза! 108 циклов или 126 операций.
Девочка-Скандал вне форума
Старый 18.06.2010, 12:50   #25
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

Цитата:
Сообщение от Девочка-Скандал Посмотреть сообщение
По поводу оптимизации- а оно мне надо? Но есть вариант сократить количество ваших циклов в 2 раза! 108 циклов или 126 операций.
интересно... выкладывайте алгоритм
подпись
liljon вне форума
Старый 18.06.2010, 13:13   #26
Девочка-Скандал
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 42
По умолчанию

Код:
Var i,k,l:integer;
Begin
I:=1;
While i+1<>10 do
Inc(i);
Inc(i,100);
K:=90;
L:=18;
While k>=10 do
Begin
Write(i);
If i mod 100 >=k then begin 
Dec(k,10);inc(i,L);inc(L,9);
End
Else inc(i,9);
End;
Readln;
End.
итого просматриваем 62 числа

Последний раз редактировалось Девочка-Скандал; 18.06.2010 в 13:17.
Девочка-Скандал вне форума
Старый 18.06.2010, 13:18   #27
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
While i+1<>10 do
Inc(i);
Во-первых не лишне заключить i+1 в скобки
во-вторых, не проще ли написать i:=9 вместо этого цикла?
I'm learning to live...
Stilet вне форума
Старый 18.06.2010, 13:30   #28
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Да все равно она молодец!!!
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума
Старый 18.06.2010, 13:40   #29
Девочка-Скандал
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 42
По умолчанию

Еще проще написать i:=109; тогда количество просмотров будет 54
Девочка-Скандал вне форума
Старый 19.06.2010, 07:23   #30
Warfvare
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Девочка-Скандал Посмотреть сообщение
Код:
Var i,k,l:integer;
Begin
I:=1;
While i+1<>10 do
Inc(i);
Inc(i,100);
K:=90;
L:=18;
While k>=10 do
Begin
Write(i);
If i mod 100 >=k then begin 
Dec(k,10);inc(i,L);inc(L,9);
End
Else inc(i,9);
End;
Readln;
End.
итого просматриваем 62 числа


Напримерелюбого 3-х значного числа например 456 где тут i,k,l ?
Warfvare вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество слов в рядке. Разбитие по по пять символов. Fatummors Общие вопросы C/C++ 8 07.03.2010 16:39
как числа делятся на пять? Владюшка Помощь студентам 4 28.01.2010 13:26
Отчот по практике sby Фриланс 3 12.05.2009 17:16
Программа по практике Antowka БД в Delphi 0 15.10.2007 10:40
Зачет по практике!!!!!! KORT Свободное общение 39 21.07.2007 00:28