100110=1*2(в степени 5)+0*2(в степени 4)+0*2(в степени 3)+1*2(в степени 2)+1*2(в степени 1)+0*2(в степени 0)=32+0+0+4+2+0=38
Вообще-то надо брать log(по основанию 2 заданного числа) и округлять до большего целого. Но проще смотреть на степени числа 2:
а) 2^6=64<65, значит надо 7 бит
б) 2^8=256 -8 бит (ровно)
в) 2^15=32768 -15 бит
г) 2^12=4096>4095 12бит достаточно
д) 2^16=65536 -16 бит
е) 2^21=2097152 мало, значит надо 22 бита
ОТДЕЛ Задание+;
ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Обмен\", Приём;
ПЕР
массив: ДОСТУП К РЯД ИЗ ЦЕЛ;
N, сч, сумма: ЦЕЛ;
УКАЗ
Вывод.Цепь("Введите N: ");
N := Приём.Число();
СОЗДАТЬ(массив, N);
Вывод.Цепь(".^Введите элементы массива:^");
сумма := 0;
ОТ сч := 0 ДО N - 1 ВЫП
массив[сч] := Приём.Число();
Вывод.Цепь(" ");
ЕСЛИ массив[сч] > сч ТО
УВЕЛИЧИТЬ(сумма, массив[сч])
КОН
КОН;
Вывод.ЧЦел("^Сумма особых элементов: %d.", сумма, 0, 0, 0)
КОН Задание.
#include <iostream>
#include <string>
using namespace std;
const unsigned space = 65;
int main()
{
unsigned n = 0;
cin >> n;
for (unsigned i = space; i < space + n; ++i) {
string str(i - (space - 1), (char)i);
cout << str << endl;
}
return 0;
}