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

Вложенные циклы: Сколькими способами гирями данного набора можно составить вес в v грамм - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа с стеком http://www.cyberforum.ru/cpp-beginners/thread764287.html
скиньте плиз любую прогу со стеками.
C++ Подсчитать сумму всех элементов стоящих между первым и вторым отрицательным числом массива есть условие: создать одномерный массив, подсчитать сумму всех элементов стоящих между первым и вторым отрицательным числом массива. первое и второе число он находит, но не могу сложить элементы между ними сложить, получается какое-то не понятное число. подскажите, как сложить элементы массива от позиции "poz" до позиции "pozz" (poz/pozz обозначения используемые у меня в коде, обозначают номер... http://www.cyberforum.ru/cpp-beginners/thread764284.html
C++ Одинаковы ли оптимизации класса шаблон/константа?
Пусть у меня есть класс: class MyClass{ const long Flag; public: MyClass(const long Flag_V): Flag(Flag_V) {} void MyFunc(){ switch (Flag){ case 1:
C++ Написать программу на языке С + + реализующая класс содержащий поля данных и методы ввода и вывода данных
Написать программу на языке С + + реализующая класс содержащий поля данных и методы ввода и вывода данных. это надо сделать в этой програме.. #include <vcl.h> #include <iostream.h> #include <conio.h> struct notebook { string name; string surname;
C++ Необходимо вычислить yij = f (xi, zj). В этих задачах x (i = 1,2, ., n) и z (j = 1,2, ., m) являются элементами одномерных массивов вещественных http://www.cyberforum.ru/cpp-beginners/thread764279.html
Необходимо вычислить yij = f (xi, zj). В этих задачах x (i = 1,2, ..., n) и z (j = 1,2, ..., m) являются элементами одномерных массивов вещественных чисел, которые содержат соответственно n и m элементов. Перед составлением алгоритма следует определить количество значений функции, которые будут получены в результате решения задачи, т.е. количество значений функции от каждого аргумента. Общее...
C++ написать програму с++ чтоб реализовать стєк! вот заготовка! struct stack{ int data; stack *next; }; void push(stack *s,int *n){ while(s->next)s=s->next; s->next=new stack; s->next->data=*n; s->next->next=0; подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
19.01.2013, 01:51     Вложенные циклы: Сколькими способами гирями данного набора можно составить вес в v грамм
Всё просто:
я делаю полный перебор всех состояний, которые могут попасть на весы (ну разве что кроме нулевого).
состояние кодируется двоичным числом.
Например
№бита 109876543210
число:...10011001010
Это значит, что на весах стоят 1я,3я,6я,7я,10я гири (те, номеру которых соответствует бит 1).
Мне нужно получить коды для всех возможных состояний весов.
Эти коды я получаю полным перебором двоичных чисел от 0000000001 до 1111111111
число 1111111111 это 0x3FF в шестнадцатиричной системе.
и действительно: счёт двоичными числами даёт все возможные состояния весов.
Например если б было 3 гири {100г 200г 300г}, я бы считал так
001 100
010 200
011 100+200
100 300
101 100+300
110 200+300
111 100+200+300
или
for (i=1; i<=7; i++){...}
Итого есть 7 способов поставить на весы 3 разные гири
Здесь код хранится в переменной i
чтобы сказать, какой этому коду соответствует вес, нужно пройтись в цикле по битам числа i и сложить в переменную sum те элементы массива, номера которых равны номерам единичных бит нашего кода это и делают строки 8-13

Добавлено через 1 минуту
Цитата Сообщение от Dezik Посмотреть сообщение
И что такое mask<<=1 ?
это сдвиг числа mask на 1 влево.
mask - это маска, которая накладывается на бит номер bit в коде, для проверки, равен ли он единице
 
Текущее время: 00:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru