Помогитееееееееееееее!!!!!!!! плиз 50 баллов!! Дан целочисленный массив из 40 элементов. Элементы
массива могут принимать целые значения от 1 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество элементов массива, восьмеричная запись которого содержит ровно две цифры, причём первая (старшая) цифра меньше второй (младшей). const N = 40; var a: array [1..N] of integer; i, j, k: integer; begin for i := 1 to N do readln(a[i]); ... end.Ответы на вопрос
Всё просто
Алгоритм:
for j := 1 to N do
if (8 <= a[j]) and (a[j] <= 63) and (a[j] div 8 < a[j] mod 8) then k:=k + 1
for j := 1 to N - перебор всех элементов массива
(8 <= a[j]) and (a[j] <= 63) - восьмеричная запись чисел от 8₁₀ до 63₁₀ содержит ровно две цифры
(a[j] div 8 < a[j] mod 8) - первая (старшая) цифра меньше второй (младшей) при восьмеричная запись чисел от 8₁₀ до 63₁₀
k:=k + 1 - счётчик количества элементов массива соответствующих условиям
Программа целиком:
const N=40;
var a: array [1..N] of integer;
i, j, k: longint;
begin
for i:=1 to N do
readln(a[i]);
for j := 1 to N do
if (8 <= a[j]) and (a[j] <= 63) and (a[j] div 8 < a[j] mod 8) then k:=k + 1;
writeln('Количество элементов массива, восьмеричная запись которого содержит ровно две цифры, причем первая (старшая) цифра меньше второй (младшей), равно: ',k);
end.
Привет! Я могу помочь тебе с задачей нахождения количества элементов массива, восьмеричная запись которых содержит ровно две цифры, при условии, что первая цифра (старшая) меньше второй (младшей). Вот алгоритм на языке программирования Pascal:
pascalconst N = 40; var a: array [1..N] of integer; i, count: integer; function IsTwoDigitOctalNumber(num: integer): boolean; var octalDigits: string; begin octalDigits := Oct(num); // Преобразуем число в восьмеричную запись Result := (Length(octalDigits) = 3) and (octalDigits[2] < octalDigits[3]); // Проверяем, что восьмеричная запись содержит 3 символа и первый символ меньше второго end; begin count := 0; // Инициализируем счетчик for i := 1 to N do begin readln(a[i]); // Считываем элементы массива if IsTwoDigitOctalNumber(a[i]) then count := count + 1; // Увеличиваем счетчик, если условие выполняется end; writeln('Количество элементов с двумя цифрами в восьмеричной записи:', count); end.
Этот алгоритм объявляет функцию IsTwoDigitOctalNumber, которая принимает число и проверяет, является ли его восьмеричная запись двузначным числом, где первая цифра меньше второй. Затем основной код читает 40 элементов массива, вызывает функцию IsTwoDigitOctalNumber для каждого элемента и увеличивает счетчик count, если условие выполняется. Наконец, выводится количество элементов, удовлетворяющих условию.
Надеюсь, это поможет! Если у тебя возникнут дополнительные вопросы, не стесняйся задавать.
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
