using namespace std;
// число представлено как string для удобства
unsigned long long deletion(const string& str)
{
if (str.size() < 3)
return 0;
vector<string> vec;
for (auto i = str.begin(), end = str.end() - 2; i < end; ++i){
// если первая цифра > 0 то чисто трехзначное
if (*i > '0'){
for (auto j = i + 1, end = str.end() - 1; j != end; ++j){
for (auto u = j + 1, end = str.end(); u != end; ++u){
string temp;
temp.push_back(*i);
temp.push_back(*j);
temp.push_back(*u);
vec.push_back(temp);
}
}
}
}
set<string> temp(vec.begin(), vec.end()); // удаляю повторяющиеся
return temp.size();
}
int main()
{
cout << deletion("1114526987200121343469469454668464397676877676876769764578543947354897321654467437513721375879786546");
}
Объяснение:
c++
При алфавитном подходе считается, что каждый символ некоторого сообщения имеет опредёленный информационный вес - несёт фиксированное количество информации.
1 бит - минимальная единица измерения информации. Информационный вес символа алфавита і и мощность алфавита N
связаны между собой соотношением: N = 2
Информационный объём сообщения I равен произведению количества символов в сообщении К на информапионный вес символа ал- фавита I.
1 байт = 8 битов.
Байт, килобайт, мегабайт, гигабайт, терабайт - единицы измерения информации. Каждая следующая еднница больше предыдущей в 1024 (210) раза.
i: integer;
begin
for i:=100 to 999 do
if (sqr(i div 100) = i mod 10 + i div 10 mod 10) then
writeln(i);
end.