假定在一个陌生的国度,有5种不同的硬币单位15,23,29,41和67(分)。寻找所有组成18元8分(1808分)的可能组合。假定对于所有面值的硬币你都有足够的硬币。
从数学角度讲 这就是多元一次方程
1808 = 15a + 23b + 29c + 41d + 67e 求解a,b,c,d,e的值
1.首先算二元一次方程
6 = 1*a + 2*b
int temp_sum = 6;
boolean isSuccessful = false;
for( int a = 0 ; a <= temp_sum / 1 ; a++ ){
temp_sum -= a * 1;
for( int b = 0 ; b <= temp_sum / 2 ; b++ ){
temp_sum -= b * 2;
if( temp_sum == 0 ){
System.out.println( 1 + "*" + a + " " +
2 + "*" + b + " " );
temp_sum = 6;
isSuccessful = true;
break;
}else{
temp_sum += b * 2;
}
}
if( !isSuccessful ){
temp_sum += a * 1;
}else{
isSuccessful = false;
}
}
这是最初思维的过程 比较容易理解 但是太