Format
This commit is contained in:
parent
5d4a3a85cc
commit
927bcaff9a
29
main.cpp
29
main.cpp
@ -14,31 +14,6 @@ boost::crc_32_type::value_type getCrc32(const std::string_view my_string) {
|
|||||||
return result.checksum();
|
return result.checksum();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Un nombre ressort sous la forme d'une chaîne de caractère avec les lettres de l'alphabet. A étant 1 puis B = 2, etc.
|
|
||||||
* En gros, c'est la conversion d'une base 10 vers 26.
|
|
||||||
* \tparam T
|
|
||||||
* \param n
|
|
||||||
* \param array
|
|
||||||
*/
|
|
||||||
template<typename T, std::uint32_t alphabetSize, std::array<char, alphabetSize> alphabet>
|
|
||||||
void findStringInv(const T n, char *array) {
|
|
||||||
// le nombre de lettre présent dans le nouveau mot : le nombre / 26 donnera le nombre de lettre.
|
|
||||||
const std::size_t iterLoop{ n / alphabet.size() };
|
|
||||||
for (size_t i = 0; i < iterLoop; ++i) {
|
|
||||||
array[i] = alphabet.back();
|
|
||||||
}
|
|
||||||
if (n < alphabet.size()) {
|
|
||||||
array[0] = alphabet[n - 1];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
/*while (n > 0) {
|
|
||||||
array[i] = alphabet[(--n) % alphabet.size()];
|
|
||||||
n /= alphabetSize;
|
|
||||||
++i;
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief
|
* \brief
|
||||||
* \tparam T
|
* \tparam T
|
||||||
@ -255,9 +230,9 @@ int main() {
|
|||||||
'Z' }; // taille = 26
|
'Z' }; // taille = 26
|
||||||
constexpr std::size_t maxCompute = 308915776;
|
constexpr std::size_t maxCompute = 308915776;
|
||||||
constexpr std::size_t maxDig = maxDigits(maxCompute);
|
constexpr std::size_t maxDig = maxDigits(maxCompute);
|
||||||
std::array<char, maxDig> tmp{};
|
|
||||||
tmp.fill('\0');
|
|
||||||
NumberBase26<maxDig> number_base_26{ alphabet };
|
NumberBase26<maxDig> number_base_26{ alphabet };
|
||||||
|
|
||||||
for (size_t i = 0; i < maxCompute; ++i, ++number_base_26) {
|
for (size_t i = 0; i < maxCompute; ++i, ++number_base_26) {
|
||||||
const auto crc = ~(getCrc32(std::string_view{ number_base_26.data.data(), maxDig }));
|
const auto crc = ~(getCrc32(std::string_view{ number_base_26.data.data(), maxDig }));
|
||||||
if (std::find(cheat_list.cbegin(), cheat_list.cend(), crc) != cheat_list.cend())
|
if (std::find(cheat_list.cbegin(), cheat_list.cend(), crc) != cheat_list.cend())
|
||||||
|
Loading…
Reference in New Issue
Block a user