Сколькими способами гирями заданного набора весов можно составить вес в 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 грамм с помощью данных гирь.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д