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

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

Восстановить пароль Регистрация
 
Lena _t
 Аватар для Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
27.06.2011, 23:37     нод двух чисел #1
Помогите составить программу нахождение нод двух введенных чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Daemon025
 Аватар для 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);
}
Lena _t
 Аватар для Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
28.06.2011, 00:10  [ТС]     нод двух чисел #3
Простите конечно а можно сделать это что то по проще без использование этих функций
,а то честно говоря я не очень знаю их.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.06.2011, 00:12     нод двух чисел #4
Lena _t, Тут одна функция которая вызывает себя рекурсивно. Издеваетесь?
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
28.06.2011, 00:19     нод двух чисел #5
Lena _t, если это слишком сложно пробуй так:
цикл i от меньшего из 2-х до 0.
если на i делятся без остатка оба числа - это Нод.

выкладывай что вышло и тебе помогут!
Daemon025
 Аватар для 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;
    }
}
diagon
Higher
 Аватар для diagon
1920 / 1186 / 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; }
Lena _t
 Аватар для Lena _t
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 32
04.07.2011, 16:45  [ТС]     нод двух чисел #8
Простите меня ,но мы еще не учили return a;.Помогите пожалуйста !
Daemon025
 Аватар для Daemon025
380 / 329 / 67
Регистрация: 06.12.2010
Сообщений: 900
04.07.2011, 16:59     нод двух чисел #9
Цитата Сообщение от Lena _t Посмотреть сообщение
Простите меня ,но мы еще не учили return a;.Помогите пожалуйста !
обучение в вузе - это самообучение.
return возвращает результат, то есть НОД
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
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;
}
Lena _t
 Аватар для 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;
}
Правильно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2011, 08:56     нод двух чисел
Еще ссылки по теме:

Нужно найти НОД двух чисел C++
C++ Нахождение НОД и сравнение двух чисел
Найти НОД двух чисел C++

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

Или воспользуйтесь поиском по форуму:
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
05.07.2011, 08:56     нод двух чисел #12
Cами протестируйте.
Yandex
Объявления
05.07.2011, 08:56     нод двух чисел
Ответ Создать тему
Опции темы

Текущее время: 11:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru