Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal]Найти все положительные четырехзначные чис, Найти все положительные четырехзначные 
:(
    Опции темы
6apon
Дата 23.3.2010, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



Помогите решить две задачки

Найти все положительные четырехзначные числа АВСВ, для которых выполняются следующие условия: 
АВ-СD=А+В+С+D (здесь АВ и СD - двухзначные числа). А, В, С, D -разные цифры;

Дан шкаф формы параллелепипеда, размером X x Y x Z . Можно ли внести его в дверь размером N x M ?


Заранее спасибо.
PM MAIL   Вверх
orthrus
Дата 24.3.2010, 09:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 30.10.2007
Где: г. Усть-Илимск(Ир кутская обл.)

Репутация: 5
Всего: 16



вот первая задача:
Код

VAR i:integer;

function valid(numb:integer):boolean;
var
    tmp : byte;
    mn : set of byte;
begin
    mn := [];
    valid := true;
    repeat
        tmp := numb mod 10;
        numb := numb div 10;
        if (tmp in mn) then begin
                               valid := false;
                               break;
                           end
                      else mn := mn + [tmp];

    until (numb = 0);
end;

function ravenstvo(numb:integer):boolean;
var
    tmp, AB,CD: integer;
    A,B,C,D : byte;
begin
    tmp := numb;
    CD := tmp mod 100;
    tmp := tmp div 100;
    AB := tmp mod 100;
    tmp := numb;
    D := tmp mod 10;
    tmp := tmp div 10;
    C := tmp mod 10;
    tmp := tmp div 10;
    B := tmp mod 10;
    tmp := tmp div 10;
    A := tmp mod 10;
    if ((AB-CD) = (A+B+C+D)) then ravenstvo := true
                             else ravenstvo := false;
end;

BEGIN
    for i:=1000 to 9999 do
        if valid(i) then
            if ravenstvo(i) then writeln(i);
    readln;
END.




--------------------
У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой
user posted image
PM MAIL ICQ   Вверх
Sanaff
Дата 24.3.2010, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 15.9.2009
Где: г. Северодвинск

Репутация: -1
Всего: 1



Для второй задачи учитывать возможность наклона шкафа? 
--------------------
Программист - это локальный бог ©ICQ 373-628-456
PM MAIL WWW ICQ   Вверх
6apon
Дата 25.3.2010, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



Цитата(Sanaff @ 24.3.2010,  23:18)
Для второй задачи учитывать возможность наклона шкафа?

нет
PM MAIL   Вверх
ФедосеевПавел
Дата 25.3.2010, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 2
Всего: 10



Можно и я подкину свой вариант решения первой задачи?
Код

PROGRAM Pas_xxx;
VAR
  A, B, C, D : Integer; {цифры искомого числа}
  {переменные для ускорения вычислений}
  AB         : Integer; {число AB=A*10+B}
  AB_C0      : Integer; {число AB_C0=AB-C*10}
  PS         : Integer; {частичная сумма PS=A+B+C}
  Count      : Integer;
BEGIN
  Count:=0;
  for A:=1 to 9 do begin
    for B:=0 to 9 do begin
      AB:=A*10+B;
      for C:=0 to A do begin
        AB_C0:=AB-C*10;
        PS:=A+B+C;
        for D:=0 to 9 do begin
          if (AB_C0-D)=(PS+D)
          then begin
            Inc(Count);
            WriteLn(Count:3,'. ',A, B, C, D,'  ',A,B,'-',C,D,'=',AB_C0-D,' == ',PS+D);
          end;
        end;
      end;
    end;
  end;
END.


Это сообщение отредактировал(а) ФедосеевПавел - 25.3.2010, 20:55
PM   Вверх
orthrus
Дата 26.3.2010, 05:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 30.10.2007
Где: г. Усть-Илимск(Ир кутская обл.)

Репутация: 5
Всего: 16



ФедосеевПавел, условие:
Цитата(6apon @  23.3.2010,  23:01 Найти цитируемый пост)
А, В, С, D -разные цифры;

не выполняется


--------------------
У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой
user posted image
PM MAIL ICQ   Вверх
ФедосеевПавел
Дата 26.3.2010, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 2
Всего: 10



Sorry...
Тогда добавим три строки
Код
PROGRAM Pas_xxx;
VAR
  A, B, C, D : Integer; {цифры искомого числа}
  {переменные для ускорения вычислений}
  AB         : Integer; {число AB=A*10+B}
  AB_C0      : Integer; {число AB_C0=AB-C*10}
  PS         : Integer; {частичная сумма PS=A+B+C}
  Count      : Integer;
BEGIN
  Count:=0;
  for A:=1 to 9 do begin
    for B:=0 to 9 do begin
      if B=A then Continue;
      AB:=A*10+B;
      for C:=0 to A do begin
        if (C=B) OR (C=A) then Continue;
        AB_C0:=AB-C*10;
        PS:=A+B+C;
        for D:=0 to 9 do begin
          if (D=C) OR (D=B) OR (D=A) then Continue;
          if (AB_C0-D)=(PS+D)
          then begin
            Inc(Count);
            WriteLn(Count:3,'. ',A, B, C, D,'  ',A,B,'-',C,D,'=',AB_C0-D,' == ',PS+D);
          end;
        end;
      end;
    end;
  end;
END.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0889 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.