gcd



Автор Ђеймур Наджафов задал вопрос в разделе Другие языки и технологии

НОД и НОК в C++.Кто напишет выберу лучшим ответом. и получил лучший ответ

Ответ от Дмитрий Александрович[эксперт]
НОД: int gcd(int x, int y) { if (y == 0) return x; return gcd(y, x % y); } НОК: Для того, что их читать из поля “n_gr ” напишем функцию. string[] nums(string str, int f_m) { string[] numbers = new string[f_m + 1]; f_m = 0; for (int i = 0; i < str.Length; i++) { if (str.Substring(i, 1) != " ") numbers[f_m] += str.Substring(i, 1); else f_m++; } return numbers; } string[] nums(string str, int f_m) { string[] numbers = new string[f_m + 1]; f_m = 0; for (int i = 0; i < str.Length; i++) { if (str.Substring(i, 1) != " ") numbers[f_m] += str.Substring(i, 1); else f_m++; } return numbers; } Входные параметры “str” и “f_m” – это строка с числа и количество чисел соответственно. Создаем массив размерностью “f_m” и начинаем “выдирать” числа из строки и добавлять их в массив “numbers”. Функция возращает массив с числами из строки. private void find_Click(object sender, EventArgs e) { string s = n_gr.Text; int i = 0, f_m = 0; while (i < s.Length) { if (s.Substring(i, 1) == " ") f_m++; i++; } string[] numbers = new string[f_m + 1]; numbers = nums(s, f_m); int c = 2; bool nok = true; for (; ; ) { for (i = 0; i < numbers.Length; i++) if (numbers != "") if (c % Convert.ToInt32(numbers) == 0) { if (i == 0 || nok == true) nok = true; } else nok = false; if (nok == true) { n_nok2.Text = Convert.ToString(c); break; } if (c >= 1000000) { n_nok2.Text = "НОК для данных чисел не найден! "; break; } c++; } }

Ответ от Голый Мужик[гуру]
Процитирую свой ответ странслировав код на С++
Нод:
пусть r - остаток от деления a на b. Есть алгоритм Евклида,

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: НОД и НОК в C++.Кто напишет выберу лучшим ответом.
GCD на Википедии
Посмотрите статью на википедии про GCD
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*