Сколькими способами гирями заданного набора весов можно составить вес в v грамм? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Имеются 10 гирь весом 100, 200, 300, 500, 1000, 1200, 1400, 1500, 2000, 3000 г. Сколькими способами гирями этого набора можно составить вес в v грамм.

Решение задачи: «Сколькими способами гирями заданного набора весов можно составить вес в v грамм?»

textual
Листинг программы
#include "foo.h"
void foo(v) {
    int q, w, e, r, t, y, u, i, o, p, z;
    z=0;
    for (q=0; q<2; q++) {
            for (w=0; w<2; w++) {
                for (e=0; e<2; e++) {
                    for (r=0; r<2; r++) {
                        for (t=0; t<2; t++) {
                            for (y=0; y<2; y++) {
                                for (u=0; u<2; u++) {
                                    for (i=0; i<2; i++) {
                                        for (o=0; o<2; o++) {
                                            for (p=0; p<2; p++) {
                                                if (v==q*100+w*200+e*300+r*500+t*1000+y*1200+u*1400+i*1500+o*2000+p*3000) {
                                                    z++;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    printf("%d sposobov", z);
}

Объяснение кода листинга программы

В данном коде неизвестная функция foo() пытается перебрать все возможные комбинации весов гирь от 0 до 1500 грамм (так как все остальные веса не учитываются в условии) и проверить, можно ли с их помощью составить заданный вес в v грамм. Внутри функции представлен цикл, который перебирает все возможные комбинации гирь. Для каждой комбинации выполняется проверка условия, и если заданный вес v грамм можно получить с помощью данной комбинации, то переменная z увеличивается на единицу. В конце функции выводится значение переменной z, которое представляет собой количество способов, которыми можно составить заданный вес v грамм с помощью данных гирь.

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы