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

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

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

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

21.01.2010, 00:35. Просмотров 330. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наибольший общий делитель!Нужно исправить ошибочку (C++):

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

Наибольший общий делитель на С++ - C++
Помогите, пожалуйста, написать программу, выводящую НОД от двух целых чисел. P.S.(надо очень срочно) Пожалуйста, не пишите какие-то...

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
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
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
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;
        
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2010, 01:16
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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