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

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

Войти
Регистрация
Восстановить пароль
 
Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
#1

нод двух чисел - C++

27.06.2011, 23:37. Просмотров 968. Ответов 11
Метки нет (Все метки)

Помогите составить программу нахождение нод двух введенных чисел
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2011, 23:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нод двух чисел (C++):

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

Нахождение НОД и НОК двух чисел - C++
Вот код программы на Паскале нужно переделать на С++ { Рекурсивные алгоритмы: нахождения НОД и НОК двух чисел } var a,b:longint; ...

Нахождение НОД и сравнение двух чисел - C++
Подскажите как реализовать нахождение НОД(наибольший общий делитель) и сравнение двух дробей. Преподаватель дал только скрин готового...

Функция вычислени НОД двух чисел - C++
Люди,помогите пожалуйста!!! на завтра надо! Создайте функцию для вычисления наибольшего делителя для двух целых чисел

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

Найти НОД двух целых чисел - C++
Найти НОД двух целых чисел. Помогите пожалуйста)

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Daemon025
380 / 329 / 67
Регистрация: 06.12.2010
Сообщений: 900
27.06.2011, 23:38 #2
C++
1
2
3
4
5
int gcd(int a,int b)
{
    if (b==0) return a;
    else return gcd(b,a%b);
}
0
Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
28.06.2011, 00:10  [ТС] #3
Простите конечно а можно сделать это что то по проще без использование этих функций
,а то честно говоря я не очень знаю их.
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
28.06.2011, 00:12 #4
Lena _t, Тут одна функция которая вызывает себя рекурсивно. Издеваетесь?
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
28.06.2011, 00:19 #5
Lena _t, если это слишком сложно пробуй так:
цикл i от меньшего из 2-х до 0.
если на i делятся без остатка оба числа - это Нод.

выкладывай что вышло и тебе помогут!
1
Daemon025
380 / 329 / 67
Регистрация: 06.12.2010
Сообщений: 900
28.06.2011, 00:26 #6
без рекурсии:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int getGreatestCommonDivisor(int a, int b)
{
    while (true)
    {
        a = a % b;
        if (a == 0)
            return b;
        b = b % a;
        if (b == 0)
            return a;
    }
}
1
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.06.2011, 12:07 #7
C++
1
2
3
4
5
#include <iostream>
main(){
    int a,b;
    for (std::cin >> a >> b;b^=a^=b^=a%=b;);
    std::cout << a; }
2
Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
04.07.2011, 16:45  [ТС] #8
Простите меня ,но мы еще не учили return a;.Помогите пожалуйста !
0
Daemon025
380 / 329 / 67
Регистрация: 06.12.2010
Сообщений: 900
04.07.2011, 16:59 #9
Цитата Сообщение от Lena _t Посмотреть сообщение
Простите меня ,но мы еще не учили return a;.Помогите пожалуйста !
обучение в вузе - это самообучение.
return возвращает результат, то есть НОД
1
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 692
04.07.2011, 17:11 #10
Вот.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<iostream>
using namespace std;
int main ( )
{setlocale(LC_ALL,"Rus");
int a,b,c;
bool g=true;
cout<<"Ввведите первое число --> ";
cin>>a;
cout<<"Ввведите второе число --> ";
cin>>b; 
 
do{
   a = a % b;
  if (a == 0)
  {c=b;
break;}
b = b % a;
if (b == 0)
{c=a;
break;}
 }while (true);
 
 
 cout<<"Результат "<<c;
 cin.get();
  cin.get();
  return 0;
}
1
Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
04.07.2011, 21:32  [ТС] #11
#include <windows.h>
#include<iostream>
using namespace std;
void main ()
{
int a,b,c;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cout<<"Ввведите первое число ";
cin>>a;
cout<<"Ввведите второе число ";
cin>>b;
do{
   a = a % b;
  if (a == 0)
  {c=b;
break;}
b = b % a;
if (b == 0)
{c=a;
break;}
 }while (true);
cout<<"Нод "<<c;
}
Правильно?
0
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 692
05.07.2011, 08:56 #12
Cами протестируйте.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2011, 08:56
Привет! Вот еще темы с ответами:

Нужно найти НОД двух чисел - C++
Подскажите пожалуйста. Надо найти НОД. Есть код int main() { setlocale(LC_ALL, &quot;russian&quot;); cout &lt;&lt; &quot;\t***Нахождение НОД***\n&quot;; ...

Не срабатывает while (НОД для двух чисел) - C++
начал писать программу по определению НОД для двух чисел. В ходе одного условия почему-то не срабатывает while. Подскажите, почему ?? ...

Вычисление НОД двух натуральных чисел (рекурсия) - C++
День добрый, помогите пожалуйста поправить данную прогу, надо бы избавиться от меток, короче говоря, сократить строки. Вот сама...

Нод для двух натуральных чисел с циклом for - C++
#include&lt;iostream&gt; #include&lt;windows.h&gt; using namespace std; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); ...


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

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

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