Я новичок в программировании, и я изучаю C ++.
Я реализовал самый большой алгоритм общего делителя Евклида, используя C ++.
int main()
{
int n = 78;
int m = 52;
float r = 0;
while (n != 0) {
r = m % n;
m = n;
n = r;
}
cout << m;
}
Теперь я хочу адаптировать приведенный выше код C ++. Я хотел бы изменить M на = {324, 737} и N = {68, 207, 927, 87, 126, 6347, 563, 178, 437}.
Я пытаюсь определить множество G = {gcd (m, n): m ∈ M и n ∈ N}.
Для каждой пары (m, n) я пытаюсь вычислить число w
раз вводится цикл while. Затем я хочу определить среднее значение w
и это стандартное отклонение.
Моя попытка:
int n[9] = { 68, 207, 927, 87, 126, 6347, 563, 178, 437 };
int m[2] = { 324, 737 };
float r = 0;
int w;
while (n != 0){
int i = 1;
r = m[i] % n[i];
m = n;
n = r;
i++;
w++;
}
float average = w / 9;
float stdev = 0.0;
cout << m;
Это где я запутался. Как я могу изменить это, чтобы принять массивы, а затем, как бы я рассчитал и определил w
, средний и STDEV?
Функции помогают вам структурировать ваш код (и проблему) на отдельные части. Например, вы можете сделать это:
int numberOfGcdLoopIterations(int n, int m)
{
int r = 0;
int loopCount = 0;
while (n != 0)
{
r = m % n;
m = n;
n = r;
++loopCount;
}
return loopCount;
}
Затем вы можете вызвать эту функцию для любого n
а также m
Вы хотите и получите соответствующий w
, Теперь вопрос сводится к тому, «как я вызываю эту функцию для каждой пары m
а также n
из заданных наборов «и» как рассчитать среднее и стандартное отклонение возвращаемых значений «. Вы должны быть в состоянии решить это отсюда.
Других решений пока нет …