|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2010, 21:32 | #1 |
Новичок
Джуниор
Регистрация: 22.12.2010
Сообщений: 2
|
Нахождение НОД
нужно написать программу нахождения НОД трех чисел.
написал, вроде логично все, но не работает. помогите новичку) (писал в Билдере) #pragma hdrstop #include "conio.h" #include <iostream> #include <math.h> using namespace std; #include <vcl.h> //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { int a, b, c, min1, min, nod; cout<< "Enter a, b, c" <<endl; cin>> a, b, c; min1= a>b?b:a; //нахождение наименьшего из a,b,c, min= min1>c?c:min1; //запись его в min for (nod=2; nod<min; nod++) if (a==0 || b==0 || c==0) { cout<< "nod = 0"; } if (nod==min) { cout <<"net obshego kratnogo"; } if (a%nod==0 || b%nod==0 || c%nod==0) { cout <<nod; } getch(); } |
22.12.2010, 21:51 | #2 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
Вообще надо алгоритм Эвклида юзать) Но если так хотите, то разберитесь со скобками. У Вас получается, что от 2 до минимума проверяется только то, равно ли одно из чисел 0. Надо же, если я правильно понял идею, проверять еще и последние 2 условия.
+ Надо сделать там выходы из цикла, а то Вы таким образом найдете не только НОД, но и НОД*2, НОД*3 и т.д., если они тоже подходят под "общий делитель". |
22.12.2010, 21:57 | #3 |
Новичок
Джуниор
Регистрация: 22.12.2010
Сообщений: 2
|
не могли бы поподробнее по поводу "...проверять еще и последние 2 условия.
+ Надо сделать там выходы из цикла, а то Вы таким образом найдете не только НОД, но и НОД*2, НОД*3 и т.д., если они тоже подходят под "общий делитель"" |
22.12.2010, 22:03 | #4 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
Это значит что у вас после цикла выполняется 1 условин и всё
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
22.12.2010, 22:44 | #5 |
Пользователь
Регистрация: 20.12.2010
Сообщений: 28
|
У тебя nod==min никогда не станет true и ищешь не общее кратное, а наибольший общий делитель, а твой цикл вообще логически неверно составлен: он ищет следующий общий делитель после 1. Лучше использовать алгоритм Евклида, или цикл начать с min и до 1 и проверку на 0 нужно убрать, 0 делится на всё.
Последний раз редактировалось KEA0301; 22.12.2010 в 22:46. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нахождение НОД двух чисел | awlol | Помощь студентам | 2 | 28.11.2010 22:52 |
Нахождение НОК и НОД на ассемблере | Ханако Сейсин | Помощь студентам | 2 | 09.11.2010 17:25 |
Процедура-функция на нахождение НОД по теореме Евклида | Blueyeska | Помощь студентам | 1 | 07.05.2010 21:16 |
матрица, массив, нахождение нод | leraaa | Помощь студентам | 0 | 18.04.2010 23:07 |
Алгоритм Евклида.Нахождение НОД | innaa639 | Помощь студентам | 11 | 24.11.2009 00:17 |