1)
var
n,x,s,i : integer;
begin
s:=0;
write('Введите n: '); read(n);
for i:=1 to n do
begin
write('X - ', i, ' = '); read(x);
if x mod 10 = 9 then
s:=s+n;
end;
writeln('Сумма с 9 на конце = ', s);
end.
2)
var
n,i,max,x : integer;
begin
max:=0;
write('Введите n: '); read(n);
for i:=1 to n do
begin
if (x > max) and (x mod 5 = 0) then
max:=x;
write('X - ',i,' = '); read(x);
end;
writeln('Максимальное, кратное 5 = ', max);
end.
3)
var
a,b,i : integer;
begin
write('a = '); read(a);
write('b = '); read(b);
for i:=a to b do
begin
if (i mod 4 = 0) and (i mod 6 <> 0) then
writeln(i);
end;
end.
a = float(input())
print(a)
count = 0
while a != 1:
if (a % 2 == 0 or a % 3 == 0):
if (((a - 1) % 9 == 0) and a % 16 != 0):
print(a - 1)
a = (a - 1)/9
print(a * 3)
print(a)
count += 3
else:
if ((a - 1) % 32 == 0):
a = (a - 1)/32
print(a * 32)
print(a * 16)
print(a * 8)
print(a * 4)
print(a * 2)
print(a)
count += 6
if (a % 16 == 0):
a = a/16
print(a * 8)
print(a * 4)
print(a * 2)
print(a)
count += 4
if (a % 16 != 0 and a % 2 == 0):
a = a/2
print(a)
count += 1
if (a % 9 == 0 or a % 3 == 0):
a = a/3
print(a)
count += 1
else:
if a != 1:
a = a - 1
print(a)
count += 1
if a == 1:
break
print(count)
В интернете также есть другое решение, где каждый раз считается минимальное значение при исполнении одной из трех операций, и в итоге производится операция, в результате которой число становится наименьшим. То решение неверно, потому что оно упускает многие моменты. Это решение наиболее оптимизировано. Тем не менее, я уверен, что есть сделать его еще более оптимизированным, и что я все же упустил какой-то момент. Особенно важно то, что если у нас число, к примеру, 28 (то есть вида 3^n + 1, в данном случае n = 3), то рациональнее отнять от него 1 и делить три раза на 3, чем сразу делить на 2. Если отнять 1 и делить на 3, то это займет всего 4 операции (28 -> 27 -> 9 -> 3 -> 1). А если на 2 (28 -> 14 -> 7 -> 6 -> 3 -> 2 -> 1), то целых 6 операций.
Но в случае с числами, вроде 1000000 (т.е с числами, которые делятся хотя бы на четвертую степень двойки 2^4 = 16), гораздо рациональнее сразу делить на 2, чем отнимать единицу и делить на 3. Я не буду расписывать полностью, но в случае деления на 3 потребуется 25 операций, а с делением на 2 - всего 19.
Шартты форматтау Күнделікті керекті әрі маңызды ақпараттарды әртүрлі дереккөздер-ден пайдалану үшін ерекшелеудің қандай түрлерін қолданасыңдар? Кестедегі санды мәндерді (ең үлкен, ең кіші мәнін, ең көп және ең аз кездесетінін) көзмөлшерімен қалай ажыратады? Excel программасында кестелерді шартты түрде форматтауға болады. Форматтаудың бұл әдісі деректерді талдауда, пішіндеуде өте қолайлы әдіс болып табылады. Шартты форматтау – ұяшықтар-дағы деректерді белгілі шарттар бойынша форматтау.