Математика ЕГЭ
Русский язык ЕГЭ
Математика 5-7
Математика ОГЭ
Информатика
Физика
Обществознание
Кликните, чтобы открыть меню

22. Программирование – циклы, условия

1. Вспоминай формулы по каждой теме
2. Решай новые задачи каждый день
3. Вдумчиво разбирай решения

Простейшие программы с циклами и условными операторами

Задание 1 #12945

Укажите наибольшее десятичное число, при вводе которого на экране сначала напечатается 3, а затем 6.

\[\begin{array}{|l|l|l|} \hline Python&C++&Pascal\\ \hline x=int(input())&\#include\;<iostream>&\\ L=0&using\;namespace\;std;&var\; x,L,M:\;integer;\\ M=0&int\;main()\; \{&begin\\ while\;x>0:&\quad int \; L, M, x;&\quad readln(x);\\ \quad L=L+1&\quad cin>>x;&\quad L:=0;M:=0;\\ \quad if\;(x\%2)!=0:&\quad L=0;M=0;&\quad while\;x>0\;do\;begin\\ \quad\quad M=M+x\%8&\quad while\;(x>0)\; \{&\quad\quad L:=L+1;\\ \quad x=x//8&\quad\quad L=L+1;&\quad\quad if\;(x\;mod\;2)<>0\;then\\ print\;(L)&\quad\quad if\;(x\%2!=0)\; \{&\quad\quad\quad M:=M+x\;mod\;8;\\ print\;(M)&\quad\quad\quad M=M+x\%8;&\quad\quad x:=x\;div\;8;\\ &\quad\quad \}&\quad end;\\ &\quad\quad x=x/8;&\quad writeln(L); writeln (M);\\ &\quad \}&end.\\ &\quad cout<<L<<endl<<M;&\\ &\}&\\ \hline \end{array}\]

Определимся, что подсчитывает каждая из переменных.

\(L\) — считает количество цифр в числе в восьмеричной системе счисления (т.к. в конце цикла делим нацело на 8),

\(M\) — сумма нечетных цифр числа в восьмеричной системе счисления.

Итак, по условию необходимо найти такое трехзначное восьмеричное число, у которого сумма нечетных чисел равна 6, и при этом оно максимально.

Так как число должно быть максимальным, последние две цифры в восьмеричной системе счисления — 51. Тогда первой цифрой поставим максимальную четную цифру в восьмеричной сс — 6.

Осталось перевести ответ в десятичную сс: \(651_8=425_{10}\)

Ответ: 425

Задание 2 #12948

Укажите наибольшее десятичное число, при вводе которого на экране сначала напечатается 4, а затем 8.

\[\begin{array}{|l|l|l|} \hline Python&C++&Pascal\\ \hline x=int(input())&\#include\;<iostream>&\\ L=0&using\;namespace\;std;&var\; x,L,M:\;integer;\\ M=0&int\;main()\; \{&begin\\ while\;x>0:&\quad int \; L, M, x;&\quad readln(x);\\ \quad L=L+1&\quad cin>>x;&\quad L:=0;M:=0;\\ \quad if\;(x\%2)!=0:&\quad L=0;M=0;&\quad while\;x>0\;do\;begin\\ \quad\quad M=M+x\%8&\quad while\;(x>0)\; \{&\quad\quad L:=L+1;\\ \quad x=x//8&\quad\quad L=L+1;&\quad\quad if\;(x\;mod\;2)<>0\;then\\ print\;(L)&\quad\quad if\;(x\%2!=0)\; \{&\quad\quad\quad M:=M+x\;mod\;8;\\ print\;(M)&\quad\quad\quad M=M+x\%8;&\quad\quad x:=x\;div\;8;\\ &\quad\quad \}&\quad end;\\ &\quad\quad x=x/8;&\quad writeln(L); writeln (M);\\ &\quad \}&end.\\ &\quad cout<<L<<endl<<M;&\\ &\}&\\ \hline \end{array}\]

Определимся, что подсчитывает каждая из переменных.

\(L\) — считает количество цифр в числе в восьмеричной системе счисления (т.к. в конце цикла делим нацело на 8),

\(M\) — сумма нечетных цифр числа в восьмеричной системе счисления.

Итак, по условию необходимо найти такое четырехзначное восьмеричное число, у которого сумма нечетных чисел равна 8, и при этом оно максимально.

Так как сумма нечетных цифр должна быть равна 8, представим \(8=7+1\). Для получения максимального числа поставим 7 первой цифрой, а 1 — последней. Оставшиеся два места заполним максимальными четными цифрами в восьмеричной сс, т.е. шестерками.

Осталось перевести ответ в десятичную сс: \(7661_8=4017_{10}\)

Ответ: 4017

Задание 3 #12949

Укажите наибольшее десятичное число, при вводе которого на экране сначала напечатается 3, а затем 10.

\[\begin{array}{|l|l|l|} \hline Python&C++&Pascal\\ \hline x=int(input())&\#include\;<iostream>&\\ L=0&using\;namespace\;std;&var\; x,L,M:\;integer;\\ M=0&int\;main()\; \{&begin\\ while\;x>0:&\quad int \; L, M, x;&\quad readln(x);\\ \quad L=L+1&\quad cin>>x;&\quad L:=0;M:=0;\\ \quad if\;(x\%2)==0:&\quad L=0;M=0;&\quad while\;x>0\;do\;begin\\ \quad\quad M=M+x\%8&\quad while\;(x>0)\; \{&\quad\quad L:=L+1;\\ \quad x=x//8&\quad\quad L=L+1;&\quad\quad if\;(x\;mod\;2)=0\;then\\ print\;(L)&\quad\quad if\;(x\%2==0)\; \{&\quad\quad\quad M:=M+x\;mod\;8;\\ print\;(M)&\quad\quad\quad M=M+x\%8;&\quad\quad x:=x\;div\;8;\\ &\quad\quad \}&\quad end;\\ &\quad\quad x=x/8;&\quad writeln(L); writeln (M);\\ &\quad \}&end.\\ &\quad cout<<L<<endl<<M;&\\ &\}&\\ \hline \end{array}\]

Определимся, что подсчитывает каждая из переменных.

\(L\) — считает количество цифр в числе в восьмеричной системе счисления (т.к. в конце цикла делим нацело на 8),

\(M\) — сумма четных цифр числа в восьмеричной системе счисления.

Итак, по условию необходимо найти такое трехзначное восьмеричное число, у которого сумма четных чисел равна 10, и при этом оно максимально.

Так как сумма четных цифр должна быть равна 10, представим \(10=6+4\). Для получения максимального числа поставим 64 в конец числа, а на первое место поставим максимальные нечетное число в восьмеричной сс, т.е. семерку.

Осталось перевести ответ в десятичную сс: \(764_8=500_{10}\)

Ответ: 500