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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2010, 21:23   #1
AcidBurst
 
Регистрация: 17.09.2010
Сообщений: 9
По умолчанию Разветвления

умный народ, прокомментируйте, что здесь не так. никак не могу понять.

задача: доказать, что любую целочисленную денежную сумму, большую 7 рублей, можно выплатить без сдачи "трешками" и "пятерками". Для любого, введенного с клавиатуры, n>7 найти такие целые неотрицательные a и b, что 3*a+5*b=n

Код:
 n:=strtoint(Edit1.text);
   if (n>7) then
                begin
                    if (n mod 3= 0) then a:=n div 5;
                    if (n mod 5= 0) then b:=n div 3;
                    c:= 3*a + 5*b;
                    if (c=n) then ShowMessage('Выполняется');
                end
                else ShowMessage('Error');

Последний раз редактировалось Stilet; 28.09.2010 в 09:20.
AcidBurst вне форума Ответить с цитированием
Старый 27.09.2010, 21:45   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

if (n mod 3= 0) then a:=n div 5;
// чему будет равно a при n=11 (если n не делится на 3)
if (n mod 5= 0) then b:=n div 3;
// чему будет равно b при n =11 (если n не делится на 7)
c:= 3*a + 5*b
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 27.09.2010, 21:55   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
var n:Integer;
  a,b:Integer;
begin
    n:=strtoint(edit1.text);
    a:=0;
    b:=0;
    if n>7 then
    begin
     while n mod 5 <>0 do
      begin
      n:=n-3;
      inc(a);
      end;
      b:=n div 5;
      showmessage('3*'+inttostr(a)+'+5*'+intostr(b)+'='+edit1.text);
    end
    else showmessage('Error!!!!!!!!');
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 27.09.2010, 22:04   #4
chesser
Пользователь
 
Регистрация: 02.08.2010
Сообщений: 17
По умолчанию

Код:
k1:=n div 3;
k2:=n div 5;
for i:=0 to k1 do
 for j:=0 to k2 do
  if (i*3+j*5)=n then
   begin
    ShowMessage('Выполняется');
    break;
   end;
if (i=k1) and (j=k2) then
 ShowMessage('Не выполняется');
chesser вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
тема Разветвления. Andrux Общие вопросы C/C++ 3 25.12.2009 17:56
тема Разветвления. Andrux Помощь студентам 0 25.12.2009 11:55
как упростить код, используя только массивы, циклы, разветвления и указатели? laxe Общие вопросы C/C++ 22 01.09.2009 09:16
Сложные цикли и разветвления. Artimbulidor Помощь студентам 4 06.11.2008 11:58