金额的面值为 100,50,20,10,5,1 元,如果找零 (z) 是:
10 = 10*1
30 = 20*1+10*1
888 = 100*8 + 50*1 + 20*1 + 10*1 + 5*1 + 1*3
例如: Z=888
If(z >= 100) -> a = z / 100; z = z % 100;
If(z >= 50) -> b= z / 50; z = z % 50;
If(z >= 20) -> c = z / 20; z = z % 20;
If(z >= 10) -> d = z / 10; z = z % 10;
If(z >= 5) -> e = z / 5; z = z % 5;
If(z >= 1) -> f = z / 1; z = z % 1;
int i, a, z=888, c[7]={0};
int m[7] = {0,100,50,20,10,5,1};
for(i=1; i<=6; i++){
if(z>=m[i]){
c[i] = z / m[i];
z = z % m[i];
}
}
尽量多用大的 -> 先用大的