Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.11;
Скачать: CL | DM;

Вниз

делфи   Найти похожие ветки 

 
Antonio   (2008-03-29 13:05) [0]

Вроде просто а как лучше незнаю
Определить, сколько четырехзначных чисел делится на 13 и при этом не делится на 2, 3 и 5.


 
<code>   (2008-03-29 13:13) [1]


procedure TForm1.FormCreate(Sender: TObject);
var i,k:integer;
begin
 k:=0;
 for i:=1000 to 9999 do
 begin
   if (i mod 13 = 0) AND (i mod 2 <> 0) AND (i mod 3 <> 0)AND (i mod 5 <> 0) then k:=k+1;
 end;
 Caption:=IntToStr(k);
end;


 
Palladin ©   (2008-03-29 14:09) [2]


TForm1.FormCreate(Sender: TObject);
var i,k,n:integer;
begin
 k:=0;
 for i:=0 to 346 do
 begin
   n:=i*2+77;
   if  ((n mod 3)<>0) and ((n mod 5)<>0) then inc(k);
 end;
 Caption:=IntToStr(k);
end;


 
korneley ©   (2008-03-29 15:33) [3]

Если уж извращаться, то по-полной :)

function GetSpecCount(Start, Stop: integer): integer;
var i, n, sum, ThousandCnt, Last3Fig:integer;
   s : string;
begin
 Result := 0;
 if Stop >= Start then begin
   for i := Start to Stop do
   begin
     s := inttostr(i);
     sum := 0;
     for n := 1 to length(s) do
       sum := sum + {strtoint(s[n]);// или + }ord(s[n]) - $30;
     case length(s) of
     1..3:
       begin
         ThousandCnt := 0;
         Last3Fig := strtoint(s);
       end;
     else
       ThousandCnt := strtoint(copy(s, 1, length(s) - 3));
       Last3Fig := strtoint(copy(s, length(s) - 2, 3));
     end;
     if (((ThousandCnt - Last3Fig) mod 13) = 0)
        and ((strtoint(copy(s, length(s), 1)) mod 2) <> 0)
        and ((sum mod 3) <> 0)
        and (copy(s, length(s), 1) <> "0")
        and (copy(s, length(s), 1) <> "5")
     then Result := Result + 1;
   end;
 end;
end;

Зато всегда доказать можно, что знакомы, стало быть, с признаками делимости ;)


 
MBo ©   (2008-03-29 15:40) [4]


var
 i, Cnt: Integer;
begin
 Cnt := 0;
 i := ((1000 + 25) div 26) * 26 - 13;
 if i < 1000 then
   i := i + 26;
 while i < 10000 do begin
   if ((i mod 3) <> 0) and ((i mod 5) <> 0) then
     Inc(Cnt);
   i := i + 26;
 end;
 Caption := IntToStr(Cnt);


P.S. Задачу можно решить и без циклов.


 
Alien1769 ©   (2008-03-29 15:45) [5]


> P.S. Задачу можно решить и без циклов.

На уровне машинных кодов не получится :))


 
MBo ©   (2008-03-29 15:47) [6]

>На уровне машинных кодов не получится :))
а и не надо
например, чисел из опред. диапазона, которые делятся на 2 или 3, но не делятся на 6, будет P(2) + P(3) - P(6)


 
Alien1769 ©   (2008-03-29 15:52) [7]


> Antonio   (29.03.08 13:05)  
> Вроде просто а как лучше незнаю

Слово лучше скорее всего лишнее, имхо

зы. Тебе дали на выбор, если хоть с одним вариантом будет понимание кода - хорошо



Страницы: 1 вся ветка

Текущий архив: 2008.05.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
2-1207825889
azamatufa
2008-04-10 15:11
2008.05.11
ADO master-detail: почему нельзя detail у сказать Append?


2-1207872096
Cornell
2008-04-11 04:01
2008.05.11
Вопрос по DelphiX


3-1196807687
Евгений Р.
2007-12-05 01:34
2008.05.11
Редактирование в dbGrid для tIbQuery


11-1188468591
Nikfel
2007-08-30 14:09
2008.05.11
Управлять ползунком в TKolScrollBox.


15-1206343589
Ega23
2008-03-24 10:26
2008.05.11
Возможно ли в Windows получение текущего времени