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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Avalan4er
3 / 3 / 0
Регистрация: 30.11.2012
Сообщений: 41
#1

Найти все натуральные числа, не превосходящие числа n, которые можно представить в виде суммы слагаемых - C++

15.02.2014, 12:41. Просмотров 1344. Ответов 7
Метки нет (Все метки)

Заданы три натуральных числа a, b, n. Найти все натуральные числа, не превосходящие числа n, которые можно представить в виде суммы ( произвольного числа ) слагаемых, каждое из которых равно либо числу а, либо числу b.

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

Найти все числа, которые можно представить в виде суммы квадратов двух натуральных чисел - C++
Дано натуральное число N. Среди чисел 1,2,...,N найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел....

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

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

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

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

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

7
tim289
4 / 4 / 2
Регистрация: 15.02.2014
Сообщений: 25
15.02.2014, 16:20 #2
вроде работает. суть задачи вводишь три числа. и проверяешь все числа меньше n пока n=0! и запоминаешь те числа которые делятся(сумма 3+3+3=9 делится без остатка на 3) на числа a b без остатка!
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 <locale>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int a,b,n,g,h;
 
    cout << "Ввод чисел a,b,n" << endl;
    cout << "Введите число а" << endl;
    cin >>a;
    cout << "Введите число b" << endl;
    cin >>b;
    cout << "Введите число n" << endl;
    cin >>n;
    for (;n>0;n--){
    g=n%a;
    h=n%b;
    if (g==0) cout<< "число "<<n<< " подходит и делится на "<<a<<endl;
    if (h==0) cout<< "число "<<n<< " подходит и делится на "<<b<<endl;}
                getch();
                return 0;
}
0
Avalan4er
3 / 3 / 0
Регистрация: 30.11.2012
Сообщений: 41
15.02.2014, 16:55  [ТС] #3
Хм, ну вот например быстрый тест
n=6, a=2, b=3
5 не делится без остатка ни на 2 ни на 3, но из данных слагаемых можно составить это число, значит по условию оно подходит
0
tim289
4 / 4 / 2
Регистрация: 15.02.2014
Сообщений: 25
16.02.2014, 01:53 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Да-да) я не правильно понял задачку) вот исправил) вкраце объясню как работает: вводим три числа к примеру 4,6 и 15=n задача находит минимальное из них и строит сумму т.е. 4+4+4+4+4=16>15 до тех пока сумма не будет равна n или больше его если равна то число подходит если нет тогда заменяем элементы суммы на второе число. вначале так 4+4+4+4+6>15 4+4+4+6 !=15 4+4+4+6+6>15 ... 6+6+6+6 !=15 т.е. из суммы элементов 4 и 6 не сложишь так чтоб получилось 16)вот)..ну потом так же проверяется 14..13..7 до элемента который на один больше чем большее из чисел a или b) вот решение)
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
53
54
55
#include <iostream>
#include <locale>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int a,b,n,g,m,c=0,c1=0,h;
 
    cout << "Ввод чисел a,b,n" << endl;
    cout << "Введите число а" << endl;
    cin >>a;
    cout << "Введите число b" << endl;
    cin >>b;
    cout << "Введите число n" << endl;
    cin >>n;
    if (a>=b) {g=b;h=a;}
    else {g=a;h=b;}
 
    for(;n>h;n--)
        {c=0;c1=0;
    for(;g>0;c1++){
        c+=g;
        if (c==n)
        {
            cout<<"чиcло "<<n<<" подходит"<<endl;
            break;
        }
        if(c>n)
            break;}
    if(c>n)
    {
        for (;c1>=0;c1--)
    {
        c=c-g;
        if (c==n)
        {
            cout<<"чиcло "<<n<<" подходит"<<endl;
            break;
        }
        c+=h;
        if (c==n)
        {
            cout<<"чиcло "<<n<<" подходит"<<endl;
            break;
        }
    }
    }}
 
                getch();
                return 0;
}
заставил поломать голову короче) если не понятно пиши)
1
tim289
4 / 4 / 2
Регистрация: 15.02.2014
Сообщений: 25
16.02.2014, 01:57 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
а кстати вот результаты)Найти все натуральные числа, не превосходящие числа n, которые можно представить в виде суммы слагаемыхНайти все натуральные числа, не превосходящие числа n, которые можно представить в виде суммы слагаемых
1
Avalan4er
3 / 3 / 0
Регистрация: 30.11.2012
Сообщений: 41
16.02.2014, 02:12  [ТС] #6
Так, я завтра все пересчитаю еще раз и, надеюсь, все сойдется. Тут еще я заметил надо включать сами числа a и b в ответ, так как по идее под произвольным числом слагаемых можно понимать и 0.
0
tim289
4 / 4 / 2
Регистрация: 15.02.2014
Сообщений: 25
16.02.2014, 02:15 #7
уже как вывести ответ сам сделаешь!
1
Avalan4er
3 / 3 / 0
Регистрация: 30.11.2012
Сообщений: 41
16.02.2014, 02:17  [ТС] #8
Да) Я все равно под на Qt и Delphi это буду переписывать, там разберусь, мне главное суть решения понять было)
0
16.02.2014, 02:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2014, 02:17
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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