class WinScore{
static final int totalScore=50;
static final int[] list={2,3,4,5,6,7,8};
public static int methodNum=0;
static void visitTree( int achieved , int index){
if (achieved >= totalScore ){
return;
}
for ( int i=index; i< list.length; i++ ){
if ( achieved + list[i] == totalScore ) {
methodNum++;
}else if ( achieved + list[i] < totalScore ){
visitTree( achieved + list[i], i );
}
}
}
public static void main
( String[] args
){ visitTree(0, 0);
System.
out.
println("number of methods are:" + methodNum
);
}
}
Y2xhc3MgV2luU2NvcmV7CiAgICBzdGF0aWMgZmluYWwgaW50IHRvdGFsU2NvcmU9NTA7CiAgICBzdGF0aWMgZmluYWwgaW50W10gbGlzdD17MiwzLDQsNSw2LDcsOH07CiAgICBwdWJsaWMgc3RhdGljIGludCBtZXRob2ROdW09MDsKCiAgICBzdGF0aWMgdm9pZCB2aXNpdFRyZWUoIGludCBhY2hpZXZlZCAsIGludCBpbmRleCl7CiAgICAgICAgICAgIGlmIChhY2hpZXZlZCA+PSB0b3RhbFNjb3JlICl7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAoIGludCBpPWluZGV4OyBpPCBsaXN0Lmxlbmd0aDsgaSsrICl7CiAgICAgICAgICAgICAgICAgICAgaWYgKCBhY2hpZXZlZCArIGxpc3RbaV0gPT0gdG90YWxTY29yZSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZE51bSsrOwogICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmICggIGFjaGlldmVkICsgbGlzdFtpXSA8IHRvdGFsU2NvcmUgKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2l0VHJlZSggYWNoaWV2ZWQgKyBsaXN0W2ldLCBpICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICB9CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiggU3RyaW5nW10gYXJncyApewogICAgICAgICAgICB2aXNpdFRyZWUoMCwgMCk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibnVtYmVyIG9mIG1ldGhvZHMgYXJlOiIgKyBtZXRob2ROdW0gKTsKCiAgICB9Cn0=