0 / 0 / 1
Регистрация: 16.01.2018
Сообщений: 75
1

Арифметическая прогрессия

17.11.2019, 21:16. Показов 1035. Ответов 11
Метки нет (Все метки)

Нам даны две арифметические прогрессии нужно найти их общие элементы.
Както вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    int a1, b1, d1, a2, b2, d2, count = 0;
    cin >> a1 >> b1 >> d1 >> a2 >> b2 >> d2;
    vector<int>a;
    for (int i = a1; i <= b1; i += d1)
        a.push_back(i);
    for (int i = 0; i < a.size(); i++)
    {
        for (int j = a2; j <= b2; j += d2)
            if (a[i] == j)
            {
                count++;
            }
    }
        
        
    cout << count;
}
Но, не проходит
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2019, 21:16
Ответы с готовыми решениями:

Арифметическая прогрессия
Добрый день всем, пытаюсь решить но никак помогите пожалуйста: На вход программы подаются три...

Арифметическая прогрессия
Здравствуйте, помогите со способом выполнения задания. Задание: Пользователь задает n кол-во целых...

Арифметическая прогрессия
Дано N десятоков целых чисел. Определить, сколько из них могут составлять арифметическую...

Прогрессия Арифметическая
Добрый день! Я к сожалению, вообще не могу разобраться даже в елементарных вещах. Помогите...

11
7422 / 5017 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
17.11.2019, 22:55 2
_Milk_, найти и посчитать - разные коды. напишите оригинал условия задачи
0
0 / 0 / 1
Регистрация: 16.01.2018
Сообщений: 75
18.11.2019, 00:42  [ТС] 3
Цитата Сообщение от Yetty Посмотреть сообщение
_Milk_, найти и посчитать - разные коды. напишите оригинал условия задачи
дано шесть чисел a1- первий елемент первой арифметической прогрессии, b1 число которое не должна превишать прогрессия и d1 крок прогрессии также само и для второй, и нужно найти совместное первой и второй прогрессии
0
7422 / 5017 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
18.11.2019, 01:48 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
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
 
int main()
{
    double a1, b1, d1, a2, b2, d2, eps=1e-9;
    cin >> a1 >> b1 >> d1 >> a2 >> b2 >> d2;
    
    vector<double>v1;
    vector<double>v2;    
    
    for (double a = a1; a <= b1+d1/2.; a+=d1)
        v1.push_back(a);
    for (double a = a2; a <= b2+d2/2.; a+=d2)
        v2.push_back(a);        
        
    for (size_t i = 0; i < v1.size(); i++)    
        for (size_t j = 0; j < v2.size(); j++)
            if (fabs(v1[i]-v2[j])<eps) cout << v1[i] << " ";       
    cout << "\n";
    
system("pause");
return 0;
}
0
0 / 0 / 1
Регистрация: 16.01.2018
Сообщений: 75
18.11.2019, 23:49  [ТС] 5
Цитата Сообщение от Yetty Посмотреть сообщение
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
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
 
int main()
{
    double a1, b1, d1, a2, b2, d2, eps=1e-9;
    cin >> a1 >> b1 >> d1 >> a2 >> b2 >> d2;
    
    vector<double>v1;
    vector<double>v2;    
    
    for (double a = a1; a <= b1+d1/2.; a+=d1)
        v1.push_back(a);
    for (double a = a2; a <= b2+d2/2.; a+=d2)
        v2.push_back(a);        
        
    for (size_t i = 0; i < v1.size(); i++)    
        for (size_t j = 0; j < v2.size(); j++)
            if (fabs(v1[i]-v2[j])<eps) cout << v1[i] << " ";       
    cout << "\n";
    
system("pause");
return 0;
}
Идея классная но к сожалению не проходит по памяти, а если делать без массива то по времени
0
3971 / 3242 / 907
Регистрация: 25.03.2012
Сообщений: 12,062
Записей в блоге: 1
19.11.2019, 12:42 6
_Milk_,
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 <bits/stdc++.h>
using namespace std;
 
int main()
{
    int a1, b1, d1, a2, b2, d2, count = 0;
    cin >> a1 >> b1 >> d1 >> a2 >> b2 >> d2;
    
    int *tail, *start, *stop, *head, *dtail, *dstart;
    if (b1<b2) {
        stop=&b1;
    } else {        
        stop=&b2;
    }
    do {
        if (a1==a2)
            ++count;
        if (a1>a2) { 
            tail=&a2;
            start=&a1;      
            dtail=&d2;
            dstart=&d1;
        } else {
            tail=&a1;
            start=&a2;      
            dtail=&d1;
            dstart=&d2;
        }       
        (*tail)+=(*dtail);
    }while(*start<*stop);
    cout << count;
}
0
7422 / 5017 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
19.11.2019, 13:33 7
Kuzia domovenok, что Вы подсчитываете счётчиком ?
Цитата Сообщение от _Milk_ Посмотреть сообщение
нужно найти совместное первой и второй прогрессии
то есть требуется вывести числа первой прогрессии, которые равны числам второй я так понимаю
0
3971 / 3242 / 907
Регистрация: 25.03.2012
Сообщений: 12,062
Записей в блоге: 1
19.11.2019, 13:46 8
Yetty, В первом посте написано подсчитывание счётчиком - я его и делаю
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
#include <bits/stdc++.h>
#include <stdio.h>
using namespace std;
 
int main()
{
    int a1, b1, d1, a2, b2, d2, count = 0;
    cin >> a1 >> b1 >> d1 >> a2 >> b2 >> d2;
    
    int *tail, *start, *stop, *head, *dtail, *dstart;
    if (b1<b2) {
        stop=&b1;
    } else {        
        stop=&b2;
    }
    do {
        if (a1==a2)
           printf("%d ", a1);
        if (a1>a2) { 
            tail=&a2;
            start=&a1;      
            dtail=&d2;
            dstart=&d1;
        } else {
            tail=&a1;
            start=&a2;      
            dtail=&d1;
            dstart=&d2;
        }       
        (*tail)+=(*dtail);
    }while(*start<*stop);
    cout << count;
}
0
7422 / 5017 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
19.11.2019, 14:16 9
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
В первом посте написано подсчитывание счётчиком
там написано
Цитата Сообщение от _Milk_ Посмотреть сообщение
Нам даны две арифметические прогрессии нужно найти их общие элементы.
в сообщении №3 ТС дополнительно выложил оригинал условия задачи
0
0 / 0 / 1
Регистрация: 16.01.2018
Сообщений: 75
19.11.2019, 19:58  [ТС] 10
Цитата Сообщение от Yetty Посмотреть сообщение
то есть требуется вывести числа первой прогрессии, которые равны числам второй я так понимаю
Да, например
Ввод
2 4 2 2 4 2
Вивод
2 4

Добавлено через 11 минут
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Yetty, В первом посте написано подсчитывание счётчиком - я его и делаю
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
#include <bits/stdc++.h>
#include <stdio.h>
using namespace std;
 
int main()
{
    int a1, b1, d1, a2, b2, d2, count = 0;
    cin >> a1 >> b1 >> d1 >> a2 >> b2 >> d2;
    
    int *tail, *start, *stop, *head, *dtail, *dstart;
    if (b1<b2) {
        stop=&b1;
    } else {        
        stop=&b2;
    }
    do {
        if (a1==a2)
           printf("%d ", a1);
        if (a1>a2) { 
            tail=&a2;
            start=&a1;      
            dtail=&d2;
            dstart=&d1;
        } else {
            tail=&a1;
            start=&a2;      
            dtail=&d1;
            dstart=&d2;
        }       
        (*tail)+=(*dtail);
    }while(*start<*stop);
    cout << count;
}
К сожалению, не проходит, не правильный ответ, но я что-то не очень понял как это работает
0
3971 / 3242 / 907
Регистрация: 25.03.2012
Сообщений: 12,062
Записей в блоге: 1
20.11.2019, 11:05 11
start<=stop
cout << count; не нужен
0
0 / 0 / 1
Регистрация: 16.01.2018
Сообщений: 75
20.11.2019, 12:29  [ТС] 12
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
start<=stop
cout << count; не нужен
я это исправил, но все равно не идет
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2019, 12:29
Помогаю со студенческими работами здесь

Арифметическая прогрессия
Задан целочисленный массив размера N. Определить, образуют ли элементы массива арифметическую...

Арифметическая прогрессия
Вывести на экран 7ой член прогрессии если числа находящиеся по соседству различаются в 5 раз, а...

Арифметическая прогрессия
Вообщем, поиск по форму ничего не дал, а с++ я помню плохо. Есть задачка, дана последовательность,...

Арифметическая прогрессия
народ помогите отпишитесь кто знает как работает программа??? #include &lt;iostream&gt; #include...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru