В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
lenapotiy03
lenapotiy03
01.08.2020 21:02 •  Информатика

Помагите с информатикой 9 класс. Данные задания соответствуют заданиям самостоятельной работы по программированию на языке QBasic​

Показать ответ
Ответ:
123291Duck
123291Duck
06.11.2022 02:25
Заметим, что число нулей в записи числа = максимальная степень десятки, на которую делится число = минимальная из степеней двойки и пятерки, входящих в разложение на простые множители этого числа. [Первое равенство очевидно, второе можно доказать от противного]
Например, 7500 имеет на конце 2 нуля: 7500 = 2^2 * 3 * 5^4 - минимальная из степеней двойки и пятерки как раз 2.

В разложении числа N! на простые множители пятерок всегда не больше, чем двоек: если в выражении N!=1*2*3*.,,*N есть множитель вида m*5^k, то есть и множитель m*2^k - хотя бы потому, что второе число меньше первого, а факториал - это произведение всех чисел меньше заданного. Поэтому при разложении на простые множители степень двойки хотя бы степень двойки. Используя наблюдение из первого параграфа, получаем:
Число нулей в конце десятичной записи числа N! совпадает с числом пятерок в разложении числа N! на простые множители.

Остается найти число пятерок в разложении. Проще всего это понять на примере.
26! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16 * 17 * 18 * 19 * 20 * 21 * 22 * 23 * 24 * 25 * 26

Число чисел, делящихся на 5, среди первых 26 чисел равно пяти (это 5, 10, 15, 20, 25). Это число можно найти, округлив вниз результат от деления 26/5.
Если подумать, можно понять, что в разложении 26! на простые множители 5 встретится не 5 раз - мы забыли учесть число 25, которое даст не одну пятерку, а две. И вообще, в ответ сомножитель что-то*5^n будут давать n пятерок.

Итого ответ для произвольного N: [N/5] + [N/5^2] + [N/5^3] + ...

Алгоритм:
c = 0
пока [N/5] > 0:
   увеличиваем c на [N/5]
   N = [N/5]
вывод c

Питон-3:
N = int(input())
c = 0
while N//5 > 0:
   c += (N//5)
   N = N//5
print(c)
0,0(0 оценок)
Ответ:
vadimvadimvadimvadim
vadimvadimvadimvadim
01.08.2020 18:22
1)var a:array[1..3,1..3] of integer;
b:array[1..3,1..3] of integer;
c:array[1..3,1..3] of integer;
i,j:integer;
begin;
writeln('A array:');
for i:=1 to 3 do
begin;
writeln;
  for j:=1 to 3 do
   begin;
    a[i,j]:=random(-10,10);
    write(a[i,j]:4);
   end;
end;
writeln;
writeln('B array:');
for i:=1 to 3 do
begin;
writeln;
  for j:=1 to 3 do
   begin;
    b[i,j]:=random(-10,10);
    write(b[i,j]:4);
   end;
end;
writeln;
writeln('C array:');
for i:=1 to 3 do
begin;
writeln;
  for j:=1 to 3 do
   begin;
    c[i,j]:=a[i,j]*b[i,j];
    write(c[i,j]:4);
   end;
end;
end.
2)var a:array of array of integer;
i,j,k,n,u:integer;
begin;
randomize;
readln(n);
setlength(a,n+1);
for i:=1 to n do
setlength(a[i],n+1);
writeln('A array:');
for i:=1 to n do
 begin;
  writeln;
   for j:=1 to n do
    begin;
     a[i,j]:=random(-10,10);
     write(a[i,j]:4);
    end;
 end;
for i:=1 to n do
 begin;
  for j:=1 to n do
   u+=a[i,j];
 if u<0 then inc(k);
 u:=0;
 end;
writeln;
write('Result:',k);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота