Dude, exchange my money

by AntonLapshin

JavaScript

let f = (v, r=[]) => ([2,1,.5,.2,.1,.05,.01].map(i => {
    while(i < v) {
        v-=i - .0001
        r.push(i)
    }
}),r)

console.log(f(9.99));
console.log(f(3.63));

/**

/* Final !!!!!! 81 O(nˆ2) and 96 O(n)

// let f = v => (r=[],[2,1,.5,.2,.1,.05,.01].map(m => {
//     while(m < v) {
//         r.push(m)
//         v-=m - .001
//     }
// }),r)

// let f = (v,i=0, m = [2,1,.5,.2,.1,.05,.01][i++],n = ~~(v / m)) => 
//     v / n && Array(n).fill(m)+' '+f(v-m*n+.001,i)

// 80
let f = v => (r='',[2,1,.5,.2,.1,.05,.01].map(m => {
    while(m < v) {
        r+=m+' '
        v-=m - .001
    }
}),r)

 */