Определите, количество чисел K, для которых следующая программа выведет такой же результат, что и для K = 24: var i, k: integer;
function F(x:integer):longint;
begin
if x = 1 then
F:=2
else F:=x*F(x-1);
end;
begin
i := 12;
readln(K);
while (i>0) and (F(i) > K) do
i:=i-1;
writeln(i);
end
#include <iostream>
#include <cmath>
const int length = 6;
int main()
{
int numb;
std::cout << "Input number: ";
std::cin >> numb;
if (!(numb >= (int)pow(10, length - 1) && numb < (int)pow(10, length))) {
std::cout << "\nInput error!";
}
else {
bool isPal = true;
for (int i = 0; i < length / 2; i++) {
if (((numb % (int)pow(10, i + 1) - numb % (int)pow(10, i)) / (int)pow(10, i)) != (numb / (int)pow(10, length - 1 - i) - 10 * (numb / (int)pow(10, length - i {
isPal = false;
}
}
std::cout << "\nIt's" << (isPal ? "" : " not a") << " palindrome";
}
return 0;
}
Это цикл с пост условием, т.е. условие выхода из цикла расположено в конце цикла.
Теперь просто выполняем цикл:
А:=А+3;
В:=В+5;
1. А=5, В=7
В>14? (7>14?) Нет, значит продолжаем выполнение цикла
2. А=8, В=12
В>14? Нет, продолжаем
3. А=11, В=17
В>14? Да, значит мы можем выйти из цикла и продолжить выполнение алгоритма
Последним значением переменной А в данном цикле было 11, т.е. А=11 после выполнения фрагмента алгоритма