если 2^8, то это единица с 8 нулями (всего 9 разрядов). Вычитаем 15, получится 1110001. Восемь разрядов, три предпоследние из которых нули.
2^2015 -- это единица с 2015 нулями (2016 разрядов). Вычитаем 15 и получаем 2015 разрядное число, у которого предпоследние 3 нуля, остальные единицы. Итого 2012 единиц.
4^2015 = (2^2)^2015 = 2^4030. То есть единица и просто дофигища нулей, явно больше чем в предыдущем числе.
Если наглядно показать (к сожалению здесь нет моноширинного шрифта):
10000000000000000
111111111110001
1000000111111111110001
То есть просто впереди первого числа добавится единица и куча нулей.
В тестовом файле с именем Sonet90.txt (он прикреплен) находится оригинал известного сонета Шекспира №90. В нем есть и пробелы, и знаки препинания и даже пустая строка.
Then hate me when thou wilt; if ever, now;
Now, while the world is bent my deeds to cross,
Join with the spite of fortune, make me bow,
And do not drop in for an after-loss:
Ah, do not, when my heart hath 'scoped this sorrow,
2013
Объяснение:
2^2015 -- это единица с 2015 нулями.
15 в двоичной записи -- 1111
Вычитать двоичные в столбик учили?
долго объяснять, но получится примерно так:
если 2^8, то это единица с 8 нулями (всего 9 разрядов). Вычитаем 15, получится 1110001. Восемь разрядов, три предпоследние из которых нули.
2^2015 -- это единица с 2015 нулями (2016 разрядов). Вычитаем 15 и получаем 2015 разрядное число, у которого предпоследние 3 нуля, остальные единицы. Итого 2012 единиц.
4^2015 = (2^2)^2015 = 2^4030. То есть единица и просто дофигища нулей, явно больше чем в предыдущем числе.
Если наглядно показать (к сожалению здесь нет моноширинного шрифта):
10000000000000000
111111111110001
1000000111111111110001
То есть просто впереди первого числа добавится единица и куча нулей.
Итого: будет 2015 - 3 + 1 = 2013 единиц.
и, если прямо надо на пятерку:
2013 единиц, 2018 нулей. Всего 4031 разряд
===== PascalABC.NET =====
begin
ReadLines('Sonet90.txt').
Where(p -> p.Length > 0).
Select(p -> p.ToUpper.MatchValues('[A-z]').
GroupBy(p -> p).Select(p -> (p.Key, p.Count)).
OrderBy(p -> -p[1]).ThenBy(p -> p[0]).First).
Foreach(p -> Writeln(p[0], ' ', p[1]))
end.
В тестовом файле с именем Sonet90.txt (он прикреплен) находится оригинал известного сонета Шекспира №90. В нем есть и пробелы, и знаки препинания и даже пустая строка.
Then hate me when thou wilt; if ever, now;
Now, while the world is bent my deeds to cross,
Join with the spite of fortune, make me bow,
And do not drop in for an after-loss:
Ah, do not, when my heart hath 'scoped this sorrow,
Come in the rearward of a conquer'd woe;
Give not a windy night a rainy morrow,
To linger out a purposed overthrow.
If thou wilt leave me, do not leave me last,
When other petty griefs have done their spite
But in the onset come; so shall I taste
At first the very worst of fortune's might,
And other strains of woe, which now seem woe,
Compared with loss of thee will not seem so.
Во втором вложении показана работа программы.