Анализ условия в цикле while (страница 2)

Определите, при каком наибольшем введённом значении переменной s программа выведет число 10000. Для Вашего удобства программа представлена на трёх языках программирования.
\[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline s\; =\; int(input()) & \#include\; <iostream> & var\; s,\; n:\; integer; \\ n\; =\; 1000000 & using\; namespace\; std; & begin \\ while\; s\; >=\; 120: & int\; main() \; \{ & \quad readln\; (s); \\ \quad s\; =\; s\; -\; 14 & \quad int\; s,\; n; & \quad n\; :=\; 1000000; \\ \quad n\; =\; n\; //\; 10& \quad cin\; >>\; s; & \quad while\; s\; >=\; 120\; do \\ print(n) & \quad n\; =\; 1000000; & \quad begin \\ & \quad while\; (s\; \; >=\; 120)\; \{ & \quad\quad s\; :=\; s\; -\; 14; \\ & \quad\quad s\; =\; s\; -\; 14; & \quad\quad n\; :=\; n\; div\; 10;\\ & \quad\quad n\; =\; n\; /\; 10; & \quad end; \\ & \quad \} & \quad writeln(n); \\ & \quad cout\; <<\; n\; <<\; endl; & end. \\ & \quad return\; 0; & \\ & \} & \\ \hline \end{array}\]
Цикл завершится после того, как значение переменной s станет больше или равно 120.
Переменная n уменьшает себя в 10 раз и в конце будет равняться 10000, то есть количество итераций будет равно 2, так как \(\frac{1000000}{10 * 10} = 10000)\).
Составим неравенство \(s - 14x < 120\) (где x - количество итераций, т.е. \(x = 2\))
Получим, что \(s < 28 + 120\)
\(s < 148\)
\(s = 147\)
Определите, при каком наибольшем введённом значении переменной s программа выведет число 4096. Для Вашего удобства программа представлена на трёх языках программирования.
\[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline s\; =\; int(input()) & \#include\; <iostream> & var\; s,\; n:\; integer; \\ n\; =\; 1 & using\; namespace\; std; & begin \\ while\; s\; >\; 89: & int\; main() \; \{ & \quad readln\; (s); \\ \quad s\; =\; s\; -\; 12 & \quad int\; s,\; n; & \quad n\; :=\; 1; \\ \quad n\; =\; n\; *\; 2 & \quad cin\; >>\; s; & \quad while\; s\; >\; 89\; do \\ print(n) & \quad n\; =\; 1\; ; & \quad begin \\ & \quad while\; (s\; \; >\; 89)\; \{ & \quad\quad s\; :=\; s\; -\; 12; \\ & \quad\quad s\; =\; s\; -\; 12; & \quad\quad n\; :=\; n\; *\; 2; \\ & \quad\quad n\; =\; n\; *\; 2; & \quad end; \\ & \quad \} & \quad writeln(n); \\ & \quad cout\; <<\; n\; <<\; endl; & end. \\ & \quad return\; 0; & \\ & \} & \\ \hline \end{array}\]
Цикл завершится после того, как значение переменной s станет меньше либо равна 89.
Переменная n увеличивает себя в два раза и в конце будет равняться 4096, то есть количество итераций будет равно 12, так как \(2^{12} = 4096\).
Составим неравенство \(s - 12x \leq 89\) (где x - количество итераций, т.е. \(x = 12\))
Получим, что \(s \leq 89 + 144\)
\(s \leq 233\)
\(s = 233\)
Определите, при каком наибольшем введённом значении переменной s программа выведет число 2560. Для Вашего удобства программа представлена на трёх языках программирования.
\[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline s\; =\; int(input()) & \#include\; <iostream> & var\; s,\; n:\; integer; \\ n\; =\; 5 & using\; namespace\; std; & begin \\ while\; s\; >\; 23: & int\; main()\; \{ & \quad readln\; (s); \\ \quad s\; =\; s\; -\; 5 & \quad int\; s,\; \; n\; =\; 5; & \quad n\; :=\; 5; \\ \quad n\; =\; n\; *\; 2 & \quad cin\; >>\; s; & \quad while\; s\; >\; 23\; do\; begin \\ print(\; n\; ) & \quad while(\; s\; >\; 23\; )\; \{ & \quad\quad s\; :=\; s\; -\; 5; \\ \quad & \quad\quad s\; =\; s\; -\; 5; & \quad\quad n\; :=\; n\; *\; 2 \\ & \quad\quad n\; =\; n\; *\; 2; & \quad end; \\ & \quad \} & \quad writeln(n); \\ & \quad cout\; <<\; n; & end. \\ & \} & \quad \\ & \quad & \\ \hline \end{array}\]
Конечное значение переменной n равно 2560, начальное - 5. Составим уравнение: \(5 * 2^x = 2560\) (x - количество итераций)
\(x = 9\)
Цикл завершится тогда, когда s станет меньше либо равно 23. Составим неравенство: \(s - 5x \leq 23\)
Так как x = 9, то \(s \leq 68\)
\(s = 68\)
Определите, при каком наименьшем целом введённом значении переменной x программа выведет число 25. Для Вашего удобства программа представлена на трёх языках программирования.
\[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline x\; =\; int(input()) & \#include\; <iostream> & var\; s,\; n,\; x:\; integer; \\ s\; =\; 115 & using\; namespace\; std; & begin \\ n\; =\; 1000 & int\; main() & \quad readln(x); \\ while\; n\; >\; 0: & \{ & \quad s\; :=\; 115; \\ \quad s\; =\; s\; -\; 15 & \quad int\; x; & \quad n\; :=\; 1000; \\ \quad n\; =\; n\; -\; x & \quad cin\; >>\; x; & \quad while\; n\; >\; 0\; do\; begin \\ print(s) & \quad int\; s\; =\; 115; & \quad\quad s\; :=\; s\; -\; 15; \\ & \quad int\; n\; =\; 1000; & \quad\quad n\; :=\; n\; -\; x; \\ & \quad while\; (n\; >\; 0)\; \{ & \quad end; \\ & \quad\quad s\; =\; s\; -\; 15; & \quad writeln(s); \\ & \quad\quad n\; =\; n\; -\; x; & end. \\ & \quad \} & \\ & \quad cout\; <<\; s\; <<\; endl; & \\ & \} & \\ \hline \end{array}\]
Цикл завершится после того, как значение переменной n станет меньше либо равна 0.
От переменной s отнимают 15 шесть раз и в конце будет равняться 25, то есть количество итераций будет равно 6, так как \(s-6\cdot15=25 =>s=115 \).
Составим неравенство \(n - 6x \leq 0\) (где x - то, что будем отнимать от n шесть раз)
Получим, что \(1000 \leq 6\cdot x\)
\(\dfrac{1000}6 \leq x\)
\(x \geq \dfrac{1000}6\)
\(x \geq 166,6(6)\)
\(x = 167\)
Определите, что выведет программа.
\[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline s\; =\; 19 & \#include\; <iostream> & var\; s,\; n:\; integer; \\ n\; =\; 0 & using\; namespace\; std; & begin \\ while\; 150\; <\; 2 * s*s: & int\; main()\; \{ & \quad s\; :=\; 19; \\ \quad s\; =\; s\; -\; 1 & \quad int\; n,\; s; & \quad n\; :=\; 0; \\ \quad n\; =\; n\; +\; 2 & \quad s\; =\; 19; & \quad while\; 150\; <\; 2 * s*s\; do\; begin \\ print(n) & \quad n\; =\; 0; & \quad\quad s\; :=\; s\; -\; 1; \\ & \quad while\; (150\; <\; 2\ *\ s\; *\; s)\; \{ & \quad\quad n\; :=\; n\; +\; 2 \\ & \quad\quad s\; =\; s\; -\; 1; & \quad end; \\ & \quad\quad n\; =\; n\; +\; 2; & \quad writeln(n); \\ & \quad \} & end. \\ & \quad cout\; <<\; n; & \\ & \quad return\; 0; & \\ & \} & \\ \hline \end{array}\]
Цикл завершится, когда удвоенный квадрат переменной s станет меньше 150 или равным ему. Это случится, когда s = 8. Тогда программе понадобится 11 итераций для того чтобы получить s = 8.
Тогда \(n = 2 * 11 = 22\)
Определите, что выведет программа.
\[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline s\; =\; 0 & \#include\; <iostream> & var\; s,\; i:\; integer; \\ for\; i\; in\; range(14,\; 33): & using\; namespace\; std; & begin \\ \quad if\; (i\; *\; i)\; \%\; 4\; ==\; 0: & int\; main() & \quad s\; :=\; 0; \\ \quad\quad s\; +=\; i // 2 & \{ & \quad for\; i\; :=\; 14\; to\; 32\; do \\ print(s) & \quad int\; s\; =\; 0; & \quad\quad if\; (i\; *\; i)\; mod\; 4\; =\; 0\; then \\ & \quad for\; (int\; i\; =\; 14;\; k\; <\; 33;\; i++)\; \{ & \quad\quad\quad s\; :=\; s\; +\; i\ div\ 2; \\ & \quad\quad if\; ((i\; *\; i)\; \%\; 4\; ==\; 0) & \quad writeln(s); \\ & \quad\quad\quad s\; +=\; i / 2; & end. \\ & \quad \} & \\ & \quad cout\; <<\; s\; <<\; endl; & \\ & \} & \\ \hline \end{array}\]
Условием захода во второе условие является проверка того, делится ли \(i^2\) на 4, т.е. делится ли \(i\) на 2.
Тогда мы можем сказать, что программа ищет сумму четных чисел в промежутке \([14;32]\).
\(\dfrac{14}2+\dfrac{16}2+\dfrac{18}2...+\dfrac{30}2+\dfrac{32}2=7+8+9...+15+16=115\)
Определите, при каком наибольшем введённом значении переменной s программа выведет число 1. Для Вашего удобства программа представлена на трёх языках программирования.
\[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline s\; =\; int(input()) & \#include\; <iostream> & var\; s,\; n:\; integer; \\ n\; =\; 1000000 & using\; namespace\; std; & begin \\ while\; s\; >=\; 240: & int\; main() \; \{ & \quad readln\; (s); \\ \quad s\; =\; s\; -\; 12 & \quad int\; s,\; n; & \quad n\; :=\; 1000000; \\ \quad n\; =\; n\; //\; 10 & \quad cin\; >>\; s; & \quad while\; s\; >=\; 240\; do \\ print(n) & \quad n\; =\; 1000000; & \quad begin \\ & \quad while\; (s\; \; >=\; 240)\; \{ & \quad\quad s\; :=\; s\; -\; 12; \\ & \quad\quad s\; =\; s\; -\; 12; & \quad\quad n\; :=\; n\; div\; 10; \\ & \quad\quad n\; =\; n\; /\; 10; & \quad end; \\ & \quad\} & \quad writeln(n); \\ & \quad cout\; <<\; n\; <<\; endl; & end. \\ & \quad return\; 0; & \\ & \} & \\ \hline \end{array}\]
Цикл завершится после того, как значение переменной s станет меньше 240.
Переменная n уменьшает себя в 10 раз и в конце будет равняться 1, то есть количество итераций будет равно 6, так как \(\frac{1000000}{10 * 10 * 10 * 10 * 10 * 10 } = 1\).
Составим неравенство \(s - 12x < 240\) (где x - количество итераций, т.е. \(x = 6\))
Получим, что \(s < 72 + 240\)
\(s < 312\)
\(s = 311\)