Главная страница
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.012 c
2-1207938850
Rhammer
2008-04-11 22:34
2008.05.11
Разбитые винраром архивы на part


2-1208175929
Антон Вл.
2008-04-14 16:25
2008.05.11
Сортировка


15-1206828712
Riply
2008-03-30 01:11
2008.05.11
Vista и ограничения


15-1206194716
@!!ex
2008-03-22 17:05
2008.05.11
Надежность JAVA-приложения


15-1206803292
guav
2008-03-29 18:08
2008.05.11
DMClient - посветка.