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

