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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
temperus
1 / 1 / 0
Регистрация: 02.03.2011
Сообщений: 42
#1

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

09.03.2011, 17:29. Просмотров 2562. Ответов 10
Метки нет (Все метки)

есть одномерный массив, содержащий целые числы. нужно найти наименьшее общее кратное, которое бы удовлетворяло всем эти числам. не знаю как реализовать на си. буду очень благодарен, если оставите комментарий в коде. заранее спасибо, если кто поможет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2011, 17:29     Наименьшее общее кратное
Посмотрите здесь:

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
09.03.2011, 17:57     Наименьшее общее кратное #2
temperus,
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
47
48
49
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
int main()
{
    srand(unsigned(time(NULL)));
    int mas[N];
    int flag,i,j,max;
    printf("Array -> ");
    for(i=0; i<N; i++)
     {
         mas[i]=rand()%10+1;
          printf("%d ", mas[i]);
     }
     max=mas[0];
      for(i=0; i<N; i++)
      {
          if(mas[i]>max)
          {
              max=mas[i];
          }
      }
     for(i=max;;i++)
     {
         flag=1;
         for(j=0; j<N; j++)
         {
             if(!(i%mas[j]))
             {
                 flag=1;
             }
             else
             {
                 flag=0;
                 break;
             }
         }
         if(flag)
         {
          printf("Result -> %d ",i);
           break;
         }
     }
     getch();
     return 0;
 
}
temperus
1 / 1 / 0
Регистрация: 02.03.2011
Сообщений: 42
10.03.2011, 00:33  [ТС]     Наименьшее общее кратное #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
46
47
48
49
50
51
52
#include <stdio.h>
#include <conio.h>
int main()
{
  int a[100][100], b[100], i,j,k,M,N,x,y,max,flag;
  printf("Vvedite N,M: ");
  scanf("%d %d", &N, &M);
  printf("Vvedite x,y: ");
  scanf("%d %d", &x, &y);
  for (i=1; i<=N; i++)
      for (j=1; j<=M; j++)
          { printf("a[%d][%d]= ",i,j);
            scanf("%d",&a[i][j]); }
  j=1; k=1;
  while (j<=y)
  { b[k]=a[x][j];
    j++; k++; }
  j=y+1; i=x-1; k++;
  while (j<=M && i>=1)
  { b[k]=a[i][j];
    i--; j++; k++; }
  j=y+1; i=x+1; k++;
  while (j<=M && i<=N)
  { b[k]=a[i][j];
    k++; i++; j++; }
    
  max=b[1];
  for(i=2; i<=k; i++)
     if(b[i]>max)
        max=b[i];  
  for(i=max; ; i++)
  {
     flag=1;
     for(j=1; j<=k; j++)
     {
        if(!(i%b[j]))
           flag=1;
        else
        {
          flag=0;
          break;
        }
     }
     if(flag)
     {
       printf("Result %d ",i);
       break;
     }
  }
  getch();        
  return 0;
}
почему выкидывает ошибку ? не могу понять
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
10.03.2011, 00:44     Наименьшее общее кратное #4
temperus, какая ошыбка?
temperus
1 / 1 / 0
Регистрация: 02.03.2011
Сообщений: 42
10.03.2011, 01:03  [ТС]     Наименьшее общее кратное #5
Цитата Сообщение от MILAN Посмотреть сообщение
temperus, какая ошыбка?
"исключение unknown software exception (0xc00000094) в приложении по адресу 0x004015de

нажмите ок для завершения приложения"

проверил вывод максимума - там все верно и ошибок нет. ошибка в алгоритме для нахождения кратного. но я не вижу её.
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
10.03.2011, 01:07     Наименьшее общее кратное #6
temperus, выложите задание, потому что не охота в вашем коде разбиратся.
temperus
1 / 1 / 0
Регистрация: 02.03.2011
Сообщений: 42
10.03.2011, 02:00  [ТС]     Наименьшее общее кратное #7
Цитата Сообщение от MILAN Посмотреть сообщение
temperus, выложите задание, потому что не охота в вашем коде разбиратся.
задание: есть матрица размером N на M. есть точка отсчета у фигуры, условно x,y(её координаты).
фигура движется как на рисунке. т.е. она идет по иксовой строке меняя столбцы до координаты y(столбца точки отсчета) и потом идет разветвление.
нужно найти наименьшее общее кратное для всех элементов из заданной области определения(аля для заштрихованных).
Миниатюры
Наименьшее общее кратное  
temperus
1 / 1 / 0
Регистрация: 02.03.2011
Сообщений: 42
10.03.2011, 16:20  [ТС]     Наименьшее общее кратное #8
разветвление идет пока не упрется в какую-либо границу (или в N или в M).
Shman
3 / 3 / 2
Регистрация: 30.04.2012
Сообщений: 212
25.05.2012, 08:56     Наименьшее общее кратное #9
MILAN, можешь объяснить что делает эта строк в твоем коде? Что проверяет?
C++
1
2
3
4
5
6
7
8
9
if(!(i%mas[j]))
 {
  flag=1;
 }
else
 {
  flag=0;
  break;
 }
Если что-то НЕ ВЫХОДИТ, то флаг = true, иначе flase и выйти из внутр. цикла?
Что конкретно делает операция "!(i%mas[j]"?
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
25.05.2012, 09:19     Наименьшее общее кратное #10
Цитата Сообщение от Shman Посмотреть сообщение
MILAN, можешь объяснить что делает эта строк в твоем коде? Что проверяет?
C++
1
2
3
4
5
6
7
8
9
if(!(i%mas[j]))
 {
  flag=1;
 }
else
 {
  flag=0;
  break;
 }
Если что-то НЕ ВЫХОДИТ, то флаг = true, иначе flase и выйти из внутр. цикла?
Что конкретно делает операция "!(i%mas[j]"?
Если остаток от деления нулевой, то условие в if будет истинным, иначе ложным
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2012, 09:44     Наименьшее общее кратное
Еще ссылки по теме:

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

Найти наименьшее общее кратное (НОК) натуральных чисел С++ - 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,...

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

Вычислить наименьшее общее кратное двух натуральных чисел - C++
Написать программу, вычисляющую наименьшее общее кратное двух натуральных чисел a) Найти max (a, b). Числа a, b должны вводится с...


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

Или воспользуйтесь поиском по форуму:
Shman
3 / 3 / 2
Регистрация: 30.04.2012
Сообщений: 212
25.05.2012, 09:44     Наименьшее общее кратное #11
yleart, Так может лучше Flag объявить как bool, а не int? Мне кажется программу можно упростить до след. вида:
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
#include <stdio.h> 
#include <conio.h> 
#include <stdlib.h> 
#include <time.h> 
#define N 5 // Размер массива.
int main()
{
 int mas[N]; 
 int i, j, max;
 bool flag;
 srand(unsigned(time(NULL))); 
 printf("\n Massiv iz chisel ot 1 do 10: \n"); 
  for(i=0; i<N; i++)
  {
   mas[i]=rand()%10+1;
   printf("\n Mas[%d] = %d. ", i, mas[i]);
  }
 max=mas[0]; // Первый элемент массива назначаем максимальным.
  for(i=0; i<N; i++)
  {
   if(mas[i]>max) // Если какой-нибудь другой элемент массива больше максимального, то...
   { max=mas[i]; } // назначаем его максимальным.
  }
  
  for(i=max;;i++)
  { 
   for(j=0; j<N; j++)
   { if(!(i%mas[j])) // Если остаток от деления равен 0, то...
      { flag=1; } // условие = true.
     else
      { flag=0; // иначе = false.
        break; } // Прекратить внутренний цикл.
   } 
    if(flag==1) // Если условие = true.
    { printf("\n \n NOK = %d. \n",i); // Выводим результат.
      break; }  // Прекратить цикл.
  }
      
 getch(); 
 return 0; 
}
Yandex
Объявления
25.05.2012, 09:44     Наименьшее общее кратное
Ответ Создать тему
Опции темы

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