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

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

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

Наибольший общий делитель!Нужно исправить ошибочку - C++

21.01.2010, 00:35. Просмотров 321. Ответов 5
Метки нет (Все метки)

Наибольший общий делитель (НОД) двух целых чисел является самым большим числом, на которое делится каждое из двух чисел. Напишите функцию gcd, которая возвращает наибольший общий делитель двух целых чисел.



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
29
30
31
32
33
34
#include <iostream>
 
#include <math.h>
using namespace std;
int FNOD ( int x, y, i ) 
{
if ((X%i == 0) && ( Y%i ==0 ) )
return 1 ;
else
{
return 0;
}
} 
int main ()
{ 
int a,b,d,ost; 
cout << " vvedite a i b" << endl;
cin>> a >> b;
if (a>b)
{
k=b;
}
else 
{
k=a;
}
for (i=1 ; i<k ; i++ )
if (FNOD(a,b,i)==1)
NOD=i;
 
cout << " NOD = " << NOD << endl;
 
return 0 ;
}}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2010, 00:35     Наибольший общий делитель!Нужно исправить ошибочку
Посмотрите здесь:

Найти наибольший общий делитель чисел M и N, используя метод Эйлера (исправить ошибки) - C++
Добрый вечер всем. Помогите пожалуйста с решением данной задачи в с++ 6.0 (знаю что это древняя версия но с нас требуют выполнения в ней(()...

Наибольший общий делитель - C++
Задача на программирование: наибольший общий делитель По данным двум числам 1≤a,b≤2⋅10^9 найдите их наибольший общий делитель. ...

наибольший общий делитель - C++
Написать программу, которая рекурсивно вычисляет (наибольший общий делитель) НОД (a,b), где целые числа a и b вводятся пользователем

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

Найдите наибольший общий делитель - C++
Найдите наибольший общий делитель и наименьшее общее кратное двух натуральных чисел, учитывая что выполняется равенство : ...

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

Найти наибольший общий делитель чисел - C++
Найти наибольший общий делитель чисел M и N используя метод Эйлера: если M делится на N, то НОД (N, M) = N, иначе НОД (N, M) = НОД (M % N,...

Определите наибольший общий делитель чисел - C++
Привет,всем!!!Я учусь в колледже информатики и мы только начали изучать Си и нам дали электронную контрольную работу,но когда я отправляю...

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

Функция: Наибольший общий делитель. Непонятно - C++
#include &lt;iostream&gt; using namespace std; int nod(int number1, int number2) // рекурсивная функция нахождения наибольшего общего...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
21.01.2010, 00:42     Наибольший общий делитель!Нужно исправить ошибочку #2
Вот: Функцию FNOD можешь назвать как угодно.

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 FNOD(int x, int y)
{
    int max;
    
    if(x>y)
        max = y;
    else
        max = x;
    
    int res=1;
    
    for(int i=2; i<=max; i++)
        if( !(x%i) && !(y%i))
            res=i;
            
    return res;
}
 
int main()
{
    cout << FNOD(8, 12) << endl;
                                
        return 0;
        
}
Jereme
1 / 1 / 0
Регистрация: 19.12.2008
Сообщений: 27
21.01.2010, 00:51  [ТС]     Наибольший общий делитель!Нужно исправить ошибочку #3
а как сделать чтоб с клавиатуры вводить числа!
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
21.01.2010, 01:03     Наибольший общий делитель!Нужно исправить ошибочку #4
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
29
30
31
32
#include <stdio.h>
 
#ifndef min
#define min(a, b) (((a) > (b)) ? (b) : (a))
#endif
    
int maxDiv(int a, int b){
    int div;
    if ( a < 0 )
        a *= -1;
    if ( b < 0 )
        b *= -1;
    div = min(a, b);
    while ( div > 0 && ( ( a % div ) || ( b % div ) ) )
        --div;
    return div;
}
 
int main(void){
    int a, b, div;
    
    printf("Enter two values...\na: ");
    scanf("%d", &a);
    printf("b: ");
    scanf("%d", &b);
    if ( div = maxDiv(a, b) )
        printf("The greatest common divider is %d\n", div);
    else
        printf("Can't find some common divider.\n");
    
    return 0;
}
Jereme
1 / 1 / 0
Регистрация: 19.12.2008
Сообщений: 27
21.01.2010, 01:07  [ТС]     Наибольший общий делитель!Нужно исправить ошибочку #5
Спасибо огромное)
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
21.01.2010, 01:16     Наибольший общий делитель!Нужно исправить ошибочку #6
OVERPOWER8, попробуйте вот с такой main() запустить:
C++
1
2
3
4
5
6
7
8
int main()
{
    cout << 8 << ' ' << 12 << ' ' << FNOD(8, 12) << endl;
    cout << -8 << ' ' << 12 << ' ' << FNOD(-8, 12) << endl;
                                
        return 0;
        
}
Yandex
Объявления
21.01.2010, 01:16     Наибольший общий делитель!Нужно исправить ошибочку
Ответ Создать тему
Опции темы

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