这样求整的算法真是简洁,因为硬币值最后是1,所以任意余数都能整除掉。如果换成其他问题,末尾不是1空怕就不行了。
/*问题描述:硬币问题有1元、5元、10元、50元、100元、500元的硬币,用最少的硬币数来支付A元。*/#includeusing namespace std;const int v[6] = { 1, 5, 10, 50, 100, 500};int c[6];//输入硬币个数int A;void solve(){ int ans = 0; for(int i = 5; i >=0; i--){ int t = min(A / v[i], c[i]); A -= t * v[i]; ans += t; } cout< <