Вопрос задан 26.06.2018 в 18:40. Предмет Информатика. Спрашивает Арифуллина Эмилия.

1) Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это

число степенью числа 7. То есть требуется определить, существует ли такое целое число К, что 7K =N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной. var n, k: integer; begin read(n); k := 0; while n mod 7 = 0 do begin k := k + n div 7; n := n div 7; end; if n <= 7 then writeln(k) else writeln('He существует') end. Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе числа 49. 2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется. 3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Рыжая Влада.

1) 8
2) 7 выведет 1
3)
11 строка, поменять на k := k + 1;
14 строка заменить на if n = 1 then

Рабочий код

var
    n, k: integer;

begin
    read(n);
    k := 0;
    while n mod 7 = 0 do
    begin
        k := k + 1;
        n := n div 7;
    end;
    if n = 1 then
        writeln(k)
    else
        writeln('He существует')
end.

Правильное решение данной задачи
const
    divider = 7;

var
    n: integer;
    k: real;

begin
    read(n);
    k := ln(n) / ln(divider);
    if round(k) = k then
        writeln(round(k))
    else
        writeln('He существует');
end.





0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос