сколько можно придумать трехзначных чисел где совпадают где две чифры
Ответы
Ответ:
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++