Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 30.04.2019
Сообщений: 89
1

Решение задачи перебором

06.09.2019, 15:46. Показов 604. Ответов 5
Метки нет (Все метки)

Дана задача в общем виде:

Имеются предметы ценой x, y, z. Найти все возможные наборы предметов такие, что суммы их цен была равна w.

Мое решение:

Составляем уравнение: a*x + b*y + c*z = w

Проходим итерацией по a и b, далее решаем уравнение относительно z.

Код на Pascal

Pascal
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
var
 
  x, y, z, w, a, b, v : integer;
 
  k : longint;
 
begin
 
  assign(input,'input.txt'); reset(input);
 
  assign(output,'output.txt'); rewrite(output);
 
  read(x,y,z,w);
 
  k:=0;
 
  for a:=0 to w div x do
 
    for b:=0 to w div y do
 
    begin
 
      v:=w-a*x-b*y;
 
      if (v>=0) and (v mod z=0) then k:=k+1
 
    end;
 
  write(k)
 
end.
Код работает, однако версия на C++ - нет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    ifstream input("input.txt");
    int x,y,z,w, i, j;
    input >> x, input >> y, input >> z, input >> w;
    int count = 0;
    for (i=0;i < w/x; i++ )
    {
        for (j=0; j < w/y ; j++ );
        {
            int v = w - i*x - j*y;
            if ( ( v >= 0) && ((v%z) == 0) )
                count++;
        }
    }
    cout << count;
 
    return 0;
}
В чем ошибка кода на C++ ?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2019, 15:46
Ответы с готовыми решениями:

Решение задачи
Доброго времени суток! Очень глупый, уверен, для Вас вопрос, но мне задали задачу, решить пример:...

Решение задачи С++
Помогите решить это задание. Для двух файлов A и B, которые включают по 17 элементов:...

Решение задачи
Помогите, пожалуйста =) Решить задачу в С++ Задано три символа. Напишите программу, которая...

Решение задачи
Помогите, пожалуйста! Решить задачу в С++, только с использованием цикла. Вывести на экран: ...

5
357 / 224 / 120
Регистрация: 25.06.2019
Сообщений: 828
06.09.2019, 16:01 2
Цитата Сообщение от constantin_01 Посмотреть сообщение
<= w/x;
2 раза
0
1 / 1 / 0
Регистрация: 30.04.2019
Сообщений: 89
06.09.2019, 17:45  [ТС] 3
Pvt, Pvt, я Вас не понял. Вы процитировали мое сообщение, однако в коде нет "<= w/x". Почему 2 раза?
0
357 / 224 / 120
Регистрация: 25.06.2019
Сообщений: 828
06.09.2019, 17:48 4
Цитата Сообщение от constantin_01 Посмотреть сообщение
однако в коде нет
а должно быть
0
1 / 1 / 0
Регистрация: 30.04.2019
Сообщений: 89
06.09.2019, 18:04  [ТС] 5
Pvt, если Вы про циклы, то я так сделал

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    ifstream input("C:\\1\\input.txt");
    int x,y,z,w, i, j;
    input >> x, input >> y, input >> z, input >> w;
    int count = 0;
    for (i=0;i <= w/x; i++ )
    {
        for (j=0; j <= w/x ; j++ );
        {
            int v = w - i*x - j*y;
            if ( ( v >= 0) && ((v%z) == 0) )
                count++;
        }
    }
    cout << count;
 
    return 0;
}
не работает. Почему должно именно так? Почему на паскале работает, а на си нет? Вы даете неясный ответ.
0
357 / 224 / 120
Регистрация: 25.06.2019
Сообщений: 828
06.09.2019, 18:07 6
Цитата Сообщение от constantin_01 Посмотреть сообщение
Вы даете неясный ответ.
угу, а чего знаменатели от поста к посту меняются?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2019, 18:07

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Решение задачи c++
Написать программу вычисляющую значение функции y=√(9-x*x) на задонном орезке с заданным шагом...

Решение задачи c++
Доброго времени суток!

Решение задачи
Как решить задачу: поменять местами второй четный со вторым нечетным в одномерном массиве

Решение задачи
Нужна помощь в решении задачи. Прошу помочь надеюсь в вашей поддержке:( прошу решить задачу


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

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

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