Написать функцию, возвращающую количество двоек, содержащихся при переводе в троичную СС - Pascal ABC
Формулировка задачи:
Помогите пжлст,
Написать функцию, возвращающую количество двоек, содержащихся в числе при переводе в троичную СС. Используя эту функцию посчитать среди N элементов последовательности, содержащий ровно две двойки.
Спасиюо
Решение задачи: «Написать функцию, возвращающую количество двоек, содержащихся при переводе в троичную СС»
textual
Листинг программы
function Kol2(n:integer):integer; const cf:string[3]='012'; var s:string; i,k:integer; begin k:=0; while n>0 do begin if n mod 3=2 then inc(k); n:=n div 3; end; Kol2:=k; end; var a:array[1..100] of integer; n,i,k: integer; begin randomize; repeat write('Введите размер последовательности от 2 до 100 n='); readln(n); until n in [2..100]; k:=0; for i:=1 to n do begin a[i]:=10+random(90); if Kol2(a[i])=2 then inc(k); write(a[i]:4); end; writeln; write('Количество чисел, содержащих ровно 2 двойки в СС3=',k); end.
Объяснение кода листинга программы
- Функция Kol2 принимает натуральное число n и возвращает количество двоек в его троичной системе счисления (СС3).
- В функции используется константа cf, содержащая троичные цифры '012'.
- Переменная s используется как промежуточный буфер при переводах из десятичной в троичную систему счисления.
- Переменные i и k используются как счетчики циклов.
- В цикле while n>0 выполняется перевод n из десятичной в троичную систему счисления, при этом проверяется, является ли результат этого перевода четным числом (это можно сделать, проверяя остаток от деления на 2). Если это так, то значение k увеличивается на единицу.
- В цикле for i:=1 to n происходит заполнение массива a случайными целыми числами от 10 до 99.
- Для каждого элемента массива a проверяется, содержит ли он ровно 2 двойки в его троичной системе счисления, и если да, то значение k увеличивается на единицу.
- Каждое число в массиве a выводится на экран в 4-х знакочных позициях.
- В конце программы выводится общее количество чисел, содержащих ровно 2 двойки в СС3.