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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2010, 14:41   #1
nadua
Новичок
Джуниор
 
Регистрация: 24.04.2010
Сообщений: 1
По умолчанию delphi

Решите задачку по delphi -определить является ли введенное четырехзначное число счастливым , т.е сумма двух первых цифр равна сумме двух последних. С объяснением пожалуйста!!
nadua вне форума Ответить с цитированием
Старый 25.04.2010, 15:18   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Код:
function HappyNumber(Num: integer): string;
var
  x1, x2, x3, x4: integer;
begin
  if Length(IntToStr(Num)) <> 4 then begin
    Result := 'Число не 4х-значное!';
    Exit;
    { если число несостоит из 4ех символов, тогда
     выводим в результат сообщение и выходим... }
  end else begin
    // если состоит значит...
    x1 := StrToInt(Copy(IntToStr(Num), 1, 1));
    x2 := StrToInt(Copy(IntToStr(Num), 2, 1));
    x3 := StrToInt(Copy(IntToStr(Num), 3, 1));
    x4 := StrToInt(Copy(IntToStr(Num), 4, 1));
    { Делим число на 4 цифры с помощью Copy
     По другому не придумал как }
    if x1 + x2 = x3 + x4 then
      Result := 'Число счастливое!'
    { Если сума первых 2ух чисел ровна суме остальных 2ух
     значит выводим в результат сообщение что это Счастливое
     число... }
    else
      Result := 'Число обычное...';
    {Если нет, то это обычное}
  end;
end;
W0LF вне форума Ответить с цитированием
Старый 25.04.2010, 15:28   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

В свое время я нечто подобное решил так:
Код:
    sumLeft:=0;
    sumRight:=0;
Str(Number,strNum);
    MultyNum:=trunc(Length(strNum) div 2);
    for j:=1 to MultyNum do
      begin {подсчитываем сумму цифр левой половины числа...}
        Val(strNum[j],str2num,code);
        sumLeft:=sumLeft+str2num
      end;
    if odd(Length(strNum)) {определяем начальный индекс правой половины числа...}
      then  {NeChet}
        MultyNum:=MultyNum+2
      else  {Chet}
        MultyNum:=MultyNum+1;
    for j:=MultyNum to Length(strNum) do
      begin {подсчитываем сумму цифр правой половины числа}
        Val(strNum[j],str2num,code);
        sumRight:=sumRight+str2num
      end;
    if sumLeft=sumRight then {сравниваем полученные суммы}
Подобная задача была на Паскале для произвольного числа ХХХХХХХХ
Код можно легко преобразовать для Delphi
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 25.04.2010 в 15:43.
Grag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi Верчик Помощь студентам 9 02.03.2009 17:46
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' Nemesisking Компоненты Delphi 7 08.09.2007 03:27