Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Leff
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 23
#1

НОД - C++

26.01.2011, 01:58. Просмотров 860. Ответов 3
Метки нет (Все метки)

Извиняюсь за вопрос, просмотрел все но не нашел того, что нужно

Задание: Найти НОД 2 чисел

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# include <iostream>
# include <conio.h>
using namespace std;
int main(){
    int a,b,i;
cout<< "vvedite 2 4isla";
cin>>a;
cin>>b;
while (a%i!=0)||(b%i!=0){
 
    i=a<b?a:b;
    i--;}
cout<<"max="<< i;
return 0;
}
Что я неправильно написал ? Она даже не запускается...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2011, 01:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос НОД (C++):

Подскажите где ошибка в нахождени НОД. Вводятся два числа a b и они должны лежать в промежутке d1 d2. с-НОД - C++
#include &quot;stdafx.h&quot; #include #include #include #include #include #include // для system using namespace std; int...

Заданы натуральные числа m и n. Найти НОД(m,n) Составить программу которая будет содержать рекурсивную функцию вычисления НОД...... - C++
Заданы натуральные числа m и n. Найти НОД(m,n) Составить программу которая будет содержать рекурсивную функцию вычисления НОД, которая...

НОД - C++
Нужно доработать код, чтобы находить НОД трех чисел, пожалуйста) #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; using...

C++ НОД - C++
Создать функцию, вычисляющую НОД. Использую эту функцию, найти наибольший общий делитель элементов одномерного массива из 10-элементов. ...

НОД - C++
Написать программу которая из двух чисел x и y ищет наибольший общий делитель

НОД 3-х чисел - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cmath&gt; using std:: cin; using std:: cout; using std:: ios_base; using...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.01.2011, 10:14 #2
Leff,
Цитата Сообщение от Leff Посмотреть сообщение
Что я неправильно написал ? Она даже не запускается...
Вы неправильно написали вот что:

Цитата Сообщение от Leff Посмотреть сообщение
while (a%i!=0)||(b%i!=0){// значение i не определено и еще оба условия нужно брать в круглые скобки
К тому же Вы здесь пытаетесь использовать два алгоритма в одном. Лучше использовать какой-нибудь один алгоритм, например так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# include <iostream>
# include <conio.h>
using namespace std;
int main(){
int a,b,i;
cout<< "vvedite 2 4isla";
cin>>a;
cin>>b;
i=a;
while ((a%i!=0)||(b%i!=0)){
i--;}
cout<<"max="<< i;
return 0;
}
Но есть еще более оптимальный по времени алгоритм.
1
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
26.01.2011, 16:01 #3
не знаю почему, но мне этот алгоритм показался каким то чУдным =)
C
1
2
while ((a%i!=0)||(b%i!=0)){
i--;}
а мой первый реализованный алгоритм был вообще ужас.
раскладывал каждое из чисел на простые множители. и коэфициенты при них.
потом собирал результат как произведение простых множителей с бОльшими коэфициентами при них. =)
1
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.01.2011, 16:08 #4
Цитата Сообщение от no0ker Посмотреть сообщение
не знаю почему, но мне этот алгоритм показался каким то чУдным =)
Вообще-то этот алгоритм читался в Вашем коде.
Вот нормальный алгоритм:
C
1
2
3
4
5
6
7
8
9
int NOD(int a, int b)
{
    while(a>0 && b>0) 
        if(a>b)
            a%=b; 
        else
            b%=a; 
    return a+b;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2011, 16:08
Привет! Вот еще темы с ответами:

Вычислить НОД - C++
Здравствуйте, у меня появилась проблема, написал программу которая вычисляет НОД, но функция не вызывает себя второй раз... #include...

НОК и НОД - C++
Здоров Всем ! Вот условие : Определить функцию для нахождения наименьшего общего кратного (НОК) и наибольшего общего...

Вычисление НОД - C++
Составить программу для вычисления НОД двух натуральных чисел вот еще одна програмка.

НОД по Евклиду - C++
Помогите пожалуйста написать программу нахождения НОД по алгоритму Евклида. Нужна максимально простая для понимания девушке программа. С...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.01.2011, 16:08
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru