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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 144, средняя оценка - 4.70
AgentumA
2 / 1 / 0
Регистрация: 05.05.2010
Сообщений: 75
#1

Наименьшее общее кратное - C++

11.05.2010, 18:45. Просмотров 20175. Ответов 24
Метки нет (Все метки)

Не особо понятная мне задача попалась...поясните и помогите:
используя функцию нахождения наименьшего общего кратного двух чисел,найти наименьшее общее кратное четырех чисел.
то есть мне надо написать функцию для двух чисел и применить для четырех???или же есть стандартная функция для НОК двух чисел???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2010, 18:45     Наименьшее общее кратное
Посмотрите здесь:

Наименьшее общее кратное - C++
есть одномерный массив, содержащий целые числы. нужно найти наименьшее общее кратное, которое бы удовлетворяло всем эти числам. не знаю как...

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

Наименьшее общее кратное трёх чисел - C++
Нужно найти НОК трёх чисел, используя функции Добавлено через 6 минут Вот мой код для нахождения НОК(а,в) через НОД(а,в). Теперь,...

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

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

Найти наименьшее общее кратное используя рекурсию - C++
Дан массив.Найти наименьшее общее кратное используя рекурсию

Введите 2 натуральные числа и найдите их наименьшее общее кратное. - C++
Помогите написать, нужно сдать 1. Введите целое число, означающее календарный год и выведите год и количество дней в этом году. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AgentumA
2 / 1 / 0
Регистрация: 05.05.2010
Сообщений: 75
11.05.2010, 20:02  [ТС]     Наименьшее общее кратное #16
Цитата Сообщение от neske Посмотреть сообщение
C++
1
2
getch();
return 0;
А не наоборот)
это точно...только все время 2 выдает...и эт...нок для 2 и 4 это вроде 8...а нод-это 2...
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
11.05.2010, 20:14     Наименьшее общее кратное #17
ой )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int search_NOK(int, int);
 
int main()
{
    int first, second, third, fourth;
    std::cout << "Input four numbers: ";
    std::cin >> first >> second >> third >> fourth; 
 
    std::cout << "NOK: " << search_NOK (search_NOK(first,second) , search_NOK(third, fourth));
    std::cout << std::endl;
    return 0;
}
 
int search_NOK (int x, int y) 
{
    int count=(x>y) ? x : y; 
                                                      
    for (int i=count; ; i++) 
        if (!(i%x) && !(i%y)) return i; 
}
AgentumA
2 / 1 / 0
Регистрация: 05.05.2010
Сообщений: 75
11.05.2010, 22:08  [ТС]     Наименьшее общее кратное #18
вот оно!!!!респект!!!
SeryZone
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
02.04.2012, 23:31     Наименьшее общее кратное #19
Я немного изменил прогу. Короче, вводим кол-во элементов массива (не больше 20) а потом сами элементы. элементы не превышают 100.
Как сделать, чтобы прога работала быстрее???
C++ (Qt)
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
#include <iostream>
 
long NOK(int, int);
 
int main()
{
    short n,j;
    short a[20];
    std::cin >> n;
    if (n>1 && n<21)
    {
        for (j=0;j<n;j++) std::cin >> a[j];
        long o=NOK(a[0],a[1]);
        for (j=2;j<n;j++) o=NOK(o,a[j]);
        std::cout << o << std::endl;
    }
}
 
long NOK (int x, int y) 
{
    int count=(x>y) ? x : y; 
                                                      
    for (long i=count; ; i++) 
        if (!(i%x) && !(i%y)) return i; 
}
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
02.04.2012, 23:46     Наименьшее общее кратное #20
мне кажется, что надо перебор делать
C++
1
2
3
4
int max=(x>y) ? x : y;
int min=(x<=y) ? y : x;
for (int i=1;;i++)
 if ((i*max)%min==0) return i*max;
SeryZone
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
03.04.2012, 20:55     Наименьшее общее кратное #21
Но как сделать, чтобы перебор заработал?
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
03.04.2012, 21:08     Наименьшее общее кратное #22
Цитата Сообщение от SeryZone Посмотреть сообщение
Но как сделать, чтобы перебор заработал?
работает же.
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
#include <iostream>
long long NOK (long long x, long long y) 
{
 long long max=(x>y) ? x : y;
 long long min=(x<=y) ? y : x;
 for (int i=1;;i++)
  if ((i*max)%min==0) return i*max;
}    
int main()
{
 int n=0,j;
 int a[20];
 while (n<=1 || n>=21)
  {
   std::cout<<"How many numbers? ";
   std::cin >> n;
  }
 for (j=0;j<n;j++) 
  {
   std::cout<<"a["<<j<<"]=";
   std::cin >> a[j];
  }
 long long o=NOK(a[0],a[1]);
 for (j=2;j<n;j++) o=NOK(o,a[j]);
 std::cout <<"\nNOK="<< o << std::endl;
 system("pause");
 return 0;
 
}
SeryZone
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
03.04.2012, 21:38     Наименьшее общее кратное #23
только оно выдаёт не НОК, а максимальное число. Что-то не так...

Добавлено через 9 минут
Вот, это - лучшее. Но иногда выдаёт неверные ответы!
C++ (Qt)
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
#include <iostream>
 
long NOK(int, int);
 
int main()
{
    short n,j;
    short a[20];
    std::cin >> n;
    if (n>1 && n<21)
    {
        for (j=0;j<n;j++) std::cin >> a[j];
        long o=NOK(a[0],a[1]);
        for (j=2;j<n;j++) o=NOK(o,a[j]);
        std::cout << o << std::endl;
    }
}
 
long NOK (int x, int y) 
{
    int k,l,m;
    k=x; l=y;
    while (l!=0)
    {
        m=k%l;
        k=l; l=m;
    }
    return x*y/k;
}
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
04.04.2012, 00:34     Наименьшее общее кратное #24
Цитата Сообщение от SeryZone Посмотреть сообщение
только оно выдаёт не НОК, а максимальное число. Что-то не так...
Копировал условия с "?", непривычный вид ифа для меня, наверное там косяки вышли в моём коде. Вот так работает, проверил только что
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
#include <iostream>
int NOK (int x, int y) 
{
 int maximum,minimum;
 if (x>y) { maximum=x; minimum=y; }
 else { minimum=x; maximum=y; }
 for (int i=1;i<=minimum;i++)
  if ((i*maximum)%minimum==0) return (i*maximum);
}    
int main()
{
 int n=0,j;
 int a[20];
 while (n<=1 || n>=21)
  {
   std::cout<<"How many numbers? ";
   std::cin >> n;
  }
 for (j=0;j<n;j++) 
  {
   std::cout<<"a["<<j<<"]=";
   std::cin >> a[j];
  }
 int o=NOK(a[0],a[1]);
 for (j=2;j<n;j++) o=NOK(o,a[j]);
 std::cout <<"\nNOK="<< o << std::endl;
 system("pause");
 return 0;
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2016, 10:30     Наименьшее общее кратное
Еще ссылки по теме:

Даны натуральные числа X и Y. Вычислить их наименьшее общее кратное. - C++
Даны натуральные числа X и Y. Вычислить их наименьшее общее кратное.

Найти наименьшее общее кратное (НОК) n натуральных чисел - C++
Есть задача: НОК Найти наименьшее общее кратное (НОК) n натуральных чисел. Технические условия Вход В первой...

Определить наименьшее общее кратное двух натуральных чисел - C++
вот мой код. выдаёт одну ошибку. помогите пожалуйста найти. #include&lt;iostream.h&gt; main(int nok) { int a, b, nod, nok; ...

Найти наименьшее общее кратное (НОК) натуральных чисел С++ - C++
Вот мой исходник : #include &lt;iostream.h&gt; int NSD (int a, int b) { while (a!=0 &amp;&amp; b!=0) { if (a&gt;b) { ...

Найти наибольший общий делитель и наименьшее общее кратное - C++
Вообщем нужно найти Наибольший общий делитель и наименьшее общее кратное. При запуске пишет &quot; 6.2005\main.cpp||In function 'void pr(int,...


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

Или воспользуйтесь поиском по форуму:
Ferrari F1
=^_^=
553 / 440 / 93
Регистрация: 27.01.2015
Сообщений: 2,553
Записей в блоге: 1
Завершенные тесты: 1
29.04.2016, 10:30     Наименьшее общее кратное #25
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
 
#include <algorithm>
using std::swap;
 
unsigned long long gcd(unsigned long long a, unsigned long long b)
{
    while (a % b)
        swap(a %= b, b);
    return b;
}
 
int main(void)
{
    unsigned long long a, b;
    cin >> a >> b;
    cout << a * b / gcd(a, b) << endl;
    return 0;
}
Yandex
Объявления
29.04.2016, 10:30     Наименьшее общее кратное
Ответ Создать тему
Опции темы

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