ответ:
в общем, ошибки такие:
во-первых, начальное значение f должно быть единица, поскольку потом мы умножаем f на k.
во-вторых, k должно быть меньше или равно n. если просто меньше, тогда программа найдёт факториал числа n-1.
в-третьих, после do нужно написать begin, иначе увеличение k на единицу не произойдёт и мы никогда не выйдем из цикла.
вроде всё
объяснение:
вот полная программа.
var n, k, f: integer;
begin
readln(n);
k: =1;
f: =1;
while k< =n do begin
f: =f*k;
k: =k+1;
end;
write(f);
end.
преобразуем первый запрос по правилу раскрытия скобок в логических выражениях:
новосибирск & (красноярск & хабаровск | норильск) ⇔
⇔ новосибирск & красноярск & хабаровск | новосибирск & норильск.
заменим переменные так, чтобы в таблице осталось только две переменных. для этого сначала обозначим «новосибирск & красноярск & хабаровск» как «а», «новосибирск & норильск» как «в». преобразуем последний запрос в таблице, добавив ничего не изменяющее логическое умножение на «новосибирск»:
новосибирск & красноярск & хабаровск & норильск ⇔
⇔ новосибирск & красноярск & хабаровск & норильск & новосибирск ⇔
⇔ а & норильск & новосибирск ⇔ а & в.
занесём данные в таблицу в новых обозначениях:
запрос найдено страниц, тыс.
а|в =570
в =214
а & в =68
вычислим количество страниц по запросу а по формуле включений исключений:
na = n(a|b) − nb + n(a& b) ⇔ na = 570 −214 + 68 = 424.
ответ: 424.
Поделитесь своими знаниями, ответьте на вопрос:
Ответьте на вопросы в таблице "да" или "нет"5 вопросов
1-да
2-да
3-в чем вопрос возможно да
4-нет
5-нет