Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

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

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

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

10
MILAN
887 / 781 / 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;
 
}
1
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;
}
почему выкидывает ошибку ? не могу понять
0
MILAN
887 / 781 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
10.03.2011, 00:44 #4
temperus, какая ошыбка?
0
temperus
1 / 1 / 0
Регистрация: 02.03.2011
Сообщений: 42
10.03.2011, 01:03  [ТС] #5
Цитата Сообщение от MILAN Посмотреть сообщение
temperus, какая ошыбка?
"исключение unknown software exception (0xc00000094) в приложении по адресу 0x004015de

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

проверил вывод максимума - там все верно и ошибок нет. ошибка в алгоритме для нахождения кратного. но я не вижу её.
0
MILAN
887 / 781 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
10.03.2011, 01:07 #6
temperus, выложите задание, потому что не охота в вашем коде разбиратся.
0
temperus
1 / 1 / 0
Регистрация: 02.03.2011
Сообщений: 42
10.03.2011, 02:00  [ТС] #7
Цитата Сообщение от MILAN Посмотреть сообщение
temperus, выложите задание, потому что не охота в вашем коде разбиратся.
задание: есть матрица размером N на M. есть точка отсчета у фигуры, условно x,y(её координаты).
фигура движется как на рисунке. т.е. она идет по иксовой строке меняя столбцы до координаты y(столбца точки отсчета) и потом идет разветвление.
нужно найти наименьшее общее кратное для всех элементов из заданной области определения(аля для заштрихованных).
0
Миниатюры
Наименьшее общее кратное  
temperus
1 / 1 / 0
Регистрация: 02.03.2011
Сообщений: 42
10.03.2011, 16:20  [ТС] #8
разветвление идет пока не упрется в какую-либо границу (или в N или в M).
0
Shman
5 / 5 / 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]"?
0
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 будет истинным, иначе ложным
0
Shman
5 / 5 / 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; 
}
0
25.05.2012, 09:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2012, 09:44
Привет! Вот еще темы с ответами:

Определить наименьшее общее кратное двух натуральных чисел - 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++
Написать программу, вычисляющую наименьшее общее кратное двух натуральных чисел a) Найти max (a, b). Числа a, b должны вводится с...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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