Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
6-1186225773
Rav
2007-08-04 15:09
2008.05.11
CharSet для операвки E-Mail


15-1206971003
FIL-23
2008-03-31 17:43
2008.05.11
как повернуть на 90 градусов рисунок


2-1207833052
Снежинка
2008-04-10 17:10
2008.05.11
Запрос


8-1179150403
Moritron
2007-05-14 17:46
2008.05.11
DSPack - видеоналожение.


2-1208170710
djaUser
2008-04-14 14:58
2008.05.11
Загрузка файлов с инет.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский