Главная страница
    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
15-1206343589
Ega23
2008-03-24 10:26
2008.05.11
Возможно ли в Windows получение текущего времени


2-1208026785
deadteachers
2008-04-12 22:59
2008.05.11
WebBrowser


15-1206524540
b z
2008-03-26 12:42
2008.05.11
Даешь русский MSDN


15-1206607633
Ламо777
2008-03-27 11:47
2008.05.11
Apache&amp;SSL - перенаправление


2-1208242787
Zloy_Funtik
2008-04-15 10:59
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский