Я работаю над проектом, который генерирует выигрышные номера лотереи, которые имеют определенные условия, они должны начинать с 0, длиться 7 цифр и быть делится на 3, 5 и 7, что означает, что вы должны иметь возможность разделить его на его LCM, что 105. Пока это работает для задания, я думаю, что для пользователя было бы лучше, чтобы вы могли выбирать, что многие, и которые будут полезны, чтобы многие были в пользу Просто нужно изменить параметры.
Наш код имеет эту функцию для проверки, если введенный номер действителен: < /p>
bool isValid(string code) {
if (code.length() != 7 || code[0] != '0') return false;
int number = stoi(code.substr(1));
return number % 105 == 0;
}
< /code>
Теперь 105 является проблемой. Мне нужно было бы изменить это на переменную, которая содержит LCM желаемого количества делителей, и я должен был рассчитать его заранее, чтобы он работал. Таким образом, я изменил некоторые функции для расчета LCM и GCD, которые мы использовали в классе. Первоначально мы использовали GCD для катуляции LCM, но, поскольку он содержит больше, чем только одна пара цифр, они с тех пор обратились к чему -то, полностью другому.
, прежде чем называть функцию, которую пользователь должен сказать, сколько делителей в игре и для их ввода в одном, я думаю, что они хранятся в векторе, названном Numdivisors. lcm. < /p>
// Find the GCD
int findGCD(vector numDivisors)
{
int min = *min_element(numDivisors.begin(), numDivisors.end());
int max = *max_element(numDivisors.begin(), numDivisors.end());
if (min == max)
{
return min;
}
else {
for (auto i = 0; i < numDivisors.size(); i++)
{
if (numDivisors[i] > min)
{
numDivisors[i] = numDivisors[i] - min;
}
}
return findGCD(numDivisors);
}
}
// Find the lcm
int findLCM(vector numDivisors, int n)
{
std::vector numDivisors;
auto lcm = std::accumulate(numDivisors.begin(), numDivisors.end(), 1, [](auto & a, auto & b) {
return abs(a * b) / std::__gcd(a, b);
});
}
Я работаю над предварительным просмотром Visual Studio 2022, я полагаю, что версия C ++ не поддерживает функцию STD :: Накапливание, какие еще параметры я могу использовать?
Я работаю над проектом, который генерирует выигрышные номера лотереи, которые имеют определенные условия, они должны начинать с 0, длиться 7 цифр и быть делится на 3, 5 и 7, что означает, что вы должны иметь возможность разделить его на его LCM, что 105. Пока это работает для задания, я думаю, что для пользователя было бы лучше, чтобы вы могли выбирать, что многие, и которые будут полезны, чтобы многие были в пользу Просто нужно изменить параметры. Наш код имеет эту функцию для проверки, если введенный номер действителен: < /p> [code]bool isValid(string code) { if (code.length() != 7 || code[0] != '0') return false; int number = stoi(code.substr(1)); return number % 105 == 0; } < /code> Теперь 105 является проблемой. Мне нужно было бы изменить это на переменную, которая содержит LCM желаемого количества делителей, и я должен был рассчитать его заранее, чтобы он работал. Таким образом, я изменил некоторые функции для расчета LCM и GCD, которые мы использовали в классе. Первоначально мы использовали GCD для катуляции LCM, но, поскольку он содержит больше, чем только одна пара цифр, они с тех пор обратились к чему -то, полностью другому. , прежде чем называть функцию, которую пользователь должен сказать, сколько делителей в игре и для их ввода в одном, я думаю, что они хранятся в векторе, названном Numdivisors. lcm. < /p> // Find the GCD int findGCD(vector numDivisors) { int min = *min_element(numDivisors.begin(), numDivisors.end()); int max = *max_element(numDivisors.begin(), numDivisors.end());
if (min == max) { return min; } else { for (auto i = 0; i < numDivisors.size(); i++) { if (numDivisors[i] > min) { numDivisors[i] = numDivisors[i] - min; } } return findGCD(numDivisors); } }
// Find the lcm int findLCM(vector numDivisors, int n) { std::vector numDivisors; auto lcm = std::accumulate(numDivisors.begin(), numDivisors.end(), 1, [](auto & a, auto & b) { return abs(a * b) / std::__gcd(a, b); }); } [/code] Я работаю над предварительным просмотром Visual Studio 2022, я полагаю, что версия C ++ не поддерживает функцию STD :: Накапливание, какие еще параметры я могу использовать?
Я хочу найти наименьшее распространенное множественное (LCM) более двух чисел. Я знаю формулу lcm (a, b) = (a * b) / gcd (a, b) . Допустим, у меня есть массив чисел: , и LCM должен быть модулем M = 1000000007.
Я видел ниже код для расчета LCM Из...
Наибольший общий делитель двух целых чисел — это наибольшее целое число, которое равномерно делит каждое из двух чисел. Напишите метод Gcd, который возвращает наибольший общий делитель двух целых чисел. Включите этот метод в приложение, которое...
Наибольший общий делитель двух целых чисел — это наибольшее целое число, которое равномерно делит каждое из двух чисел. Напишите метод Gcd, который возвращает наибольший общий делитель двух целых чисел. Включите этот метод в приложение, которое...
def lcm(a, b):
if b == 0:
return a
return a * b / lcm(a, b)
print lcm(5,3)
Это то, чем я мог бы управлять до сих пор, любая идея о том, как найти LCM (наименьшее распространенное множество) двух чисел, используя рекурсивную и одну...
def lcm(a, b):
if b == 0:
return a
return a * b / lcm(a, b)
print lcm(5,3)
Это то, чем я мог бы управлять до сих пор, любая идея о том, как найти LCM (наименьшее распространенное множество) двух чисел, используя рекурсивную и одну...