Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 127, средняя оценка - 4.87
NASri
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 4
#1

Наибольший общий делитель на С++ - C++

15.03.2011, 20:19. Просмотров 26599. Ответов 13
Метки нет (Все метки)

Помогите, пожалуйста, написать программу, выводящую НОД от двух целых чисел.
http://www.cyberforum.ru/cpp-beginners/thread1876071.html
P.S.(надо очень срочно)
Пожалуйста, не пишите какие-то заумные операторы, а если без них никак, то объясняйте...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2011, 20:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Наибольший общий делитель на С++ (C++):

Наибольший общий делитель
Помогите в написании программы, которая вычисляет наибольший общий делитель...

Наибольший общий делитель
Задача на программирование: наибольший общий делитель По данным двум числам...

наибольший общий делитель
Написать программу, которая рекурсивно вычисляет (наибольший общий делитель)...

Наибольший общий делитель
Описать рекурсивную функцию NOD(A, B) целого типа, находящую наибольший общий...

Наибольший общий делитель
Написать программу на языке С, которая рекурсивно вычисляет(наибольший общий...

13
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
15.03.2011, 20:25 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
int NOD(int a, int b)
{
    while(a > 0 && b > 0)
 
        if(a > b)
            a %= b;
 
        else
            b %= a;
 
    return a + b;
}
2
Rexer
165 / 164 / 46
Регистрация: 10.10.2010
Сообщений: 725
15.03.2011, 20:27 #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int main(void)
{
    int a,b,c;
    scanf("%d",&a);
    scanf("%d",&b);
   while (b) {
      c = a % b;
      a = b;
      b = c;
   }
printf("%d",a);
getchar();
}
1
Day
1159 / 964 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
15.03.2011, 20:39 #4
Что-то в этом роде.
C
1
2
3
4
5
6
7
8
9
10
Nod(int a, int b)
{
   If (a<b) { t =a; a=b; b=t; }
   while(b!=0) {
     t = b;
     b = a%b;
     a = t;
  }
   return a;
}
Алгоритм Эвклида называется.
1
NASri
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 4
15.03.2011, 20:40  [ТС] #5
Цитата Сообщение от asics Посмотреть сообщение
int NOD(int a, int b)
{
* * while(a > 0 && b > 0)
if(a > b)
* * * * * * a %= b;
else
* * * * * * b %= a;
return a + b;
}
эта программа не работает, но всёравно, спасибо!
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
15.03.2011, 20:42 #6
Цитата Сообщение от NASri Посмотреть сообщение
эта программа не работает
Это не програма, это только функция, которая Вам была нужна.
1
Day
1159 / 964 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
15.03.2011, 20:44 #7
http://ru.lmgtfy.com/?q=%D0%B0%D0%BB...B8%D0%B4%D0%B0
1
NASri
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 4
15.03.2011, 20:47  [ТС] #8
Цитата Сообщение от asics Посмотреть сообщение
Это не програма, это только функция, которая Вам была нужна.
А не могли бы Вы написать программу
0
Rexer
165 / 164 / 46
Регистрация: 10.10.2010
Сообщений: 725
15.03.2011, 20:59 #9
Цитата Сообщение от Rexer Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int main(void)
{
    int a,b,c;
    scanf("%d",&a);
    scanf("%d",&b);
   while (b) {
      c = a % b;
      a = b;
      b = c;
   }
printf("%d",a);
getchar();
}
вот тебе программа чего не так?тут тебе и программ и функция накидали
0
NASri
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 4
15.03.2011, 21:01  [ТС] #10
Цитата Сообщение от Rexer Посмотреть сообщение
вот тебе программа чего не так?тут тебе и программ и функция накидали
Простите, но это программа на С,а не С++.
НО СПАСИБО ЗА ПОМОЩЬ!!!!!
0
Rexer
165 / 164 / 46
Регистрация: 10.10.2010
Сообщений: 725
15.03.2011, 21:06 #11
ну так вы скажите,что вам на си++ надо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
int main(void)
{
    int a,b,c;
    cin>>a>>b;
   while (b) {
      c = a % b;
      a = b;
      b = c;
   }
cout<<a;;
system("pause");
}
1
PaganGrinder
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 1
08.11.2015, 14:23 #12
А что за условие такое - while (b) ?
0
Dimension
Dimension
573 / 442 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
08.11.2015, 14:38 #13
C++
1
2
3
int a,b;
cin>>a>>b;
cout<<__gcd(a,b);
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
08.11.2015, 14:41 #14
Цитата Сообщение от PaganGrinder Посмотреть сообщение
А что за условие такое - while (b) ?
в с/с++ все что не ноль, то - истина. Т.е. данное условие говорит: пока b не равно нулю, эквивалентно while (b != 0)
1
08.11.2015, 14:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2015, 14:41
Привет! Вот еще темы с решениями:

Найти наибольший общий делитель
помогите написать программу на С ++ задано 2 целые числа m и n, найти их...

Наибольший общий делитель (НОД)
Вычислить наибольший общий делитель элементов целочисленного списка.

Найдите наибольший общий делитель
Найдите наибольший общий делитель и наименьшее общее кратное двух натуральных...

Наибольший общий делитель 2х целых чисел
Здравствуйте, помогите пожалуйста с прогой: Вычислить наибольший общий...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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