нормальный алгоритм проверки цифр в 4-значном числе на неравентсво друг другу? Спасибо
if (digit[0] != digit[1] &&
digit[0] != digit[2] &&
digit[0] != digit[3] &&
digit[1] != digit[2] &&
digit[1] != digit[3] &&
digit[2] != digit[3]) {...}
так это нормальный алгоритм
а если я захочу, к примеру, 6-значное число вот так проверять, то не переписывать же это. Или получше решения нет?
for (int i = 0; i != digits; ++i) { for (int j = i + 1; j != digits; ++j) { if (digit[i] == digit[j]) { return false; } } } return true;
похоже на отличную идею. спасибо
по факту этот цикл исполнит ровно 6 проверок, как и в твоем хардкод-варианте
даже не 6, а можно и больше
неа
я имел ввиду с 3 цифрами
да, я уже понял что вы про биг оу
Складываешь все свои цифры в std::unordered_set и смотришь, что получившийся размер равен входному
без хешей или чё эт
Это чтобы тормозило посильнее?
Это с хешами, да
Тогда вряд ли можно написать что-то быстрее, чем тот вариант, который предложил ТС
Обсуждают сегодня