вторник, 28 ноября 2017 г.

ЕГЭ-24: DDB8DB

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

Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 64.
2. Приведите пример числа, при вводе которого приведённая программа напечатает корректное существующее значение K.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Достаточно указать ошибки и способ их исправления для одного языка программирования.


Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Комментариев нет:

Отправить комментарий