|
Дано целое положительное число
N
, не превосходящее 1000. Нужно написать программу, которая определяет, является ли это число степенью числа 7: выводит на экран либо такое целое число
K
, что 7
K
=
N
, либо сообщение «NO», если такого числа не существует.
Программист написал программу неправильно. Ниже эта написанная
им программа для Вашего удобства приведена на пяти языках программирования.
|
Бейсик
|
Python
|
|
DIM N, K AS INTEGER
INPUT N
K = 0
WHILE K MOD 7 = 0
K = K + 1
N = N \ 7
WEND
IF N > 0 THEN
PRINT K
ELSE
PRINT
"NO"
END IF
END
|
n = int(input())
k = 0
while k % 7 == 0:
k = k + 1
n = n // 7
if n > 0:
print(k)
else:
print("NO")
|
|
Алгоритмический язык
|
Паскаль
|
|
алг
нач
цел
n
,
k
ввод
n
k
:= 0
нц
пока
mod
(
k
, 7)=0
k
:=
k
+
1
n
:=
div
(
n
, 7)
кц
если
n
> 0
то
вывод
k
иначе
вывод
"
NO
"
все
кон
|
var n, k: integer;
begin
read(n);
k := 0;
while k mod 7 = 0 do begin
k := k + 1;
n := n div 7;
end;
if n > 0 then
writeln(k)
else
writeln('NO')
end.
|
|
С++
|
|
#include <iostream>
using namespace std;
int main() {
int n, k;
cin >> n;
k = 0;
while (k %
7
== 0) {
k = k + 1;
n = n /
7
;
}
if (n
> 0
)
cout << k << endl
;
else
cout << "NO" << endl
;
return 0;
}
|
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 49.
2. Приведите пример числа, при вводе которого приведённая программа, несмотря на ошибки, выведет корректное существующее значение
K
.
3. Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Известно, что в тексте программы можно исправить ровно две строки так, чтобы она стала работать правильно.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.
|