Дан рекурсивный алгоритм: procedure F(n: integer);
begin
writeln('*');
if n > 0 then begin
F(n-2);
F(n div 2);
F(n div 2);
end
end;
Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(5)?
232
498
Ответы на вопрос:
1) 27^4 – 9^5 + 3^8 – 25 (см. рис) все числа к степеням тройки, учитывая, что 25 = 27-2 = 3^3-2∙3^0 27^4 – 9^5 + 3^8 – 25 = (3^3)^4 - (3^2)^5 + 3^8 - 3^3 + 2∙3^0 = (3^12 - 3^10) + (3^8 - 3^3) + 2∙3^0 найдем значение разности в первой скобке, учитывая что 12-ая степени тройки в троичной системе это 1000000000000(3), а 10-ая степень - это 10000000000(3) 1000000000000(3) - 10000000000(3) 220000000000(3) т.е. в троичной записи 12–10 = 2 «двойки» и 10 «нулей». вычислим аналогично вторую скобку: 100000000(3) - 1000(3) 22222000(3) т.е. в троичной записи 8–3 = 5 «двоек» и 3 «нуля». таким образом, общее количество двоек = 2+5+1 = 8 2) 3∙16^8 – 4^5 + 3 (см. рис) все числа к степеням четверки: 3∙16^8 – 4^5 + 3 = 3∙(4^2)^8 – 4^5 + 3∙4^0 = 3∙4^16 – 4^5 + 3∙4^0 найдем значение разности, учитывая что 3∙4^16 в системе счисления с основанием 4 это одна «тройка» и 16 «нулей», а 4^5 - это одна «единица» и 5 «нулей»: 30000000000000000(4) - 100000(4) 23333333333300000(4) (одна «двойка», 11 «троек» и 5 «нулей») таким образом, общее количество троек = 11+1 = 12 3) 4^1024 + 8^1025 – 2^1026 – 140количество значащих нулей равно количеству всех знаков в двоичной записи числа минус количество единиц. все числа к степеням двойки, учитывая, что 140 = 128 + 8 + 44^1024 + 8^1025 – 2^1026 – 140 = (2^2)^1024 + (2^3)^1025 – 2^1026 – (2^7+2^3+2^2) =2^3075 + 2^2048 – 2^1026 – 2^7 - 2^3 - 2^2старшая степень двойки – 3075, двоичная запись этого числа представляет собой единицу и 3075 нулей, то есть, состоит из 3076 знаков; таким образом, остаётся найти количество единиц.представим далее -2^1026 = -2^1027 + 2^1026, получим: 2^3075 + 2^2048 - 2^1027 + 2^1026 – 2^7 - 2^3 - 2^2аналогично – 2^7 = - 2^8 + 2^7, получим: 2^3075 + 2^2048 - 2^1027 + 2^1026 - 2^8 + 2^7 - 2^3 - 2^2и, наконец, - 2^3 = - 2^4 + 2^32^3075 + (2^2048 - 2^1027) + (2^1026 - 2^8) + (2^7 - 2^4) + (2^3 - 2^2)вспомним свойство: число 2^n–2^k при k < n записывается как n–k единиц и k нулей.общее число единиц = 1+(2048-1027)+(1026-8)+(7-4)+(3-2) = 2044таким образом, количество значащих нулей равно 3076-2044 = 1032
Популярно: Информатика
-
Lasnochas19.09.2020 00:09
-
rih90450701.06.2023 11:25
-
SabrinaSirotina17.01.2023 10:30
-
Messi29426.03.2022 04:41
-
mirst1417.06.2020 16:15
-
АннаФайна20.03.2021 01:54
-
valeria03mailowfj4z21.10.2020 23:19
-
AnetaAndMonika200628.09.2022 12:17
-
4ae444ka28.05.2020 20:36
-
artur28319.05.2021 18:07