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

Найти НОД 6-и чисел - C++

Восстановить пароль Регистрация
 
BlackShot
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 28
02.12.2011, 22:07     Найти НОД 6-и чисел #1
Начали проходить тему процедуры и функции, и вот дали такую задачу: Найти НОД 6-и чисел (НОД 3-х чисел(НОД 2-х чисел)). Не могу разобраться как делать, говорят через формулу Евклида (точно не знаю как пишется)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.12.2011, 16:46     Найти НОД 6-и чисел #2
на wiki есть описание и код
ejjjik
8 / 8 / 0
Регистрация: 06.06.2010
Сообщений: 25
04.12.2011, 00:37     Найти НОД 6-и чисел #3
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
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <vector>
 
using namespace std;
 
int nod(int, int);
 
int main()
{
    vector<int> numbers;
    
    int temp = 0;
        
        cout << "Enter numbers: ";
    while( cin >> temp && temp != EOF ) 
    {
        numbers.push_back(temp);
    }
 
    int first = numbers[0];
    int end = numbers.size();
    int fnod = 0; 
    for ( int i = 0; end-1 >= i; i++ )
    {
        fnod = nod(first, numbers[i]);
    }
 
    cout <<"NOD = "<< fnod << endl;
    return 0;
}
 
 int nod(int a, int b) {
   int c;
   while (b) {
      c = a % b;
      a = b;
      b = c;        
   }
   return abs(a);
 }
 
// int nod(int a, int b) {
//  while(b) b^=a^=b^=a%=b;
//  return a;
// }
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 11:36     Найти НОД 6-и чисел #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
#include <iostream>
#define N 5
 
using namespace std;
 
int gcd ( int a, int b )
{
         int c;
 
         if (b>a)
                c= gcd (b,a);
         else
                if (b<=0)
                   c=a;
                else
                   c=gcd (b , a % b );
 
         return c;
}
 
int main(int argc, char* argv[])
{
        int arr[]={1,2,3,4,5};
 
        for (int i = 0; i < N; i++)
                 for (int j = i + 1 ; j <  N; j++)
                                  printf ("GCD (%d,%d)= %d \n" , arr[i],arr[j],gcd(arr[i],arr[j]) );
 
        system ("pause");
        return 0;
}
ejjjik
8 / 8 / 0
Регистрация: 06.06.2010
Сообщений: 25
04.12.2011, 15:41     Найти НОД 6-и чисел #5
вот так, для любого количества, в первом посте ошибка.
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
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <vector>
 
using namespace std;
 
int nod(int, int);
 
int main()
{
        vector<int> numbers;
        
        int temp = 0;
        
        cout << "Enter numbers: ";
        while( cin >> temp && temp != EOF ) 
        {
                numbers.push_back(temp);
        }
 
 
        int end = numbers.size();
        int fnod = numbers[0];
 
        for ( int i = 0; end-1 >= i; i++ )
        {
                fnod = nod(fnod, numbers[i]);
        }
 
        cout <<"NOD = "<< fnod << endl;
        return 0;
}
 
 int nod(int a, int b) {
   int c;
   while (b) {
      c = a % b;
      a = b;
      b = c;        
   }
   return abs(a);
 }
 
// int nod(int a, int b) {
//      while(b) b^=a^=b^=a%=b;
//      return a;
// }
BlackShot
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 28
05.12.2011, 00:59  [ТС]     Найти НОД 6-и чисел #6
Ладно, всем большое спасибо за помощь, чесно говоря я не понимаю ваших кодов, ибо еще не проходили fprintf, cout, cin, push_back и т.д.
go
05.12.2011, 10:47
  #7

Не по теме:

Цитата Сообщение от BlackShot Посмотреть сообщение
чесно говоря я не понимаю ваших кодов, ибо еще не проходили fprintf, cout, cin, push_back и т.д.
В моем коде их не было

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2011, 00:37     Найти НОД 6-и чисел
Еще ссылки по теме:

C++ Найти НОД (наибольший общий делитель) массива натуральных чисел
Нужно найти НОД двух чисел C++
Найти НОД двух чисел C++

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

Или воспользуйтесь поиском по форуму:
BlackShot
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 28
28.12.2011, 00:37  [ТС]     Найти НОД 6-и чисел #8
А можете так написать, но через приложение, а не консоль, с Edit'ами и Button'ом ?
К примеру в Edit1 вводишь одно число, в Edit2 - другое, и в Edit3 выдаст результат.
Только процедуру описать через void, в общем школьный вариант написать.
Yandex
Объявления
28.12.2011, 00:37     Найти НОД 6-и чисел
Ответ Создать тему
Опции темы

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