砝码称重问题
public class Poise {public static void main(String[] args){int []poise = {1,2,5,10};int []num = {1,1,1,1};int max= 100;int flag[] = new int[101];flag[0] = 1;int start = 1;for(int i=0;i<poise.length;i++){for(int j=1;j<=num[i];j++){ //反向寻找for(int k=100;k>=poise[i];k--){if(flag[k-poise[i]]==1)flag[k]=1;}}}for(int j=1;j<=100;j++){if(flag[j]==1)System.out.println(j);}}}