Для начала переведем число из десятичной системы в двоичную
317=100111101
Проверяем:
1+0+4+8+16+32+0+0+256=317.
Все сходится.
Значит, в двоичной системе этого числа 6 единиц.
Если число заканчивается на 5 или 0, то по признакам делимости оно кратно 5.
<u>1. Глупый школьный вариант</u>
Перебираем все числа в заданном диапазоне и если встречаем кратное 5, прибавляем его к сумме.
var
i,s:integer;
begin
s:=0;
for i:=1 to 200 do
if i mod 5=0 then s:=s+i;
Writeln(s)
end.
<em>Результат:</em>
4100
<u>2. Более умный школьный вариант с циклом while</u>
Первое число, кратное 5 - это 5. А дальше прибавляем по 5 к сумме и ничего не нужно проверять.
var
i,s:integer;
begin
i:=5; { первое подходящее число }
s:=i;
while i<200 do begin
i:=i+5;
s:=s+i
end;
Writeln(s)
end.
<u>3. Еще более умный школьный вариант с циклом for</u>
От предыдущего отличается способом получения нужных чисел.
Замечаем, что ряд 5, 10, 15, 20, ... можно получить из чисел 1, 2, 3, 4, ..., умножая их на 5. И таких чисел будет 40.
var
i,s:integer;
begin
s:=0;
for i:=1 to 40 do s:=s+5*i;
Writeln(s)
end.
<u>4. Современный вариант на современном Паскале</u>
Генерируем последовательность нужных чисел и находим сумму её элементов.
<em>// PascalABC.NET 3.3, сборка 1625 от 17.01.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
Range(5,200,5).Sum.Println
end.
var c:char; i:integer;
begin
writeln('Mujchina ili jenshina?(M/J)');
readln(c);
writeln('Vozrast');
readln(i);
if (c='M') or (c='m') then writeln('Vash vibor - ',(i div 2 + 7))
else writeln('Vash vibor - ', (2*i-14) );
end.
uses graph;
var n,i,x,y,height,width:integer;
procedure init;
var gd,gm:integer;
begin
gd:=vga;
gm:=vgahi;
initgraph (gd,gm,'');
end;
procedure error;
begin
closegraph;
writeln ('error!');
end;
begin
write ('N = ');
readln (n);
randomize;
init;
if graphresult = 0 then
begin
for i:=1 to n do
begin
setcolor (random(14)+1);
x:=random(640);
y:=random(480);
height:=random(91)+10;
width:=random(101)+20;
rectangle (x,y,x+width,y+height);
end;
end else error;
end.