きょうぐろです。

つぎのような問題はどう解決したらいいでしょうか?

合計金額のみ記された請求書が毎日届くのですが、
内訳が付いていません。
事務のおばさんは個別明細伝票を請求書の金額に
なるようあれこれ組み合わせるのに苦労しているので
簡単なプログラムをつくってあげたいと思います。
(fortran)

たとえばある日の請求書が500円で、未処理の
個別伝票が50円、100円、150円、200円、300円、
400円残っている場合、

1)100円、400円
2)50円、150円、300円
3)50円、100円、150円、200円

のような組み合わせで個別伝票をまとめて請求書に
添付し処理すればいいわけです。

もっともスマートなアルゴリズムはどんなものがあるでしょうか。
個別伝票の枚数は有限ですが、不定(せいぜい20枚程度)
です。総当たりする場合でも最小の回数にするには?