编辑代码

#include <iostream>
using namespace std;
#include <math.h>

#include <algorithm>
#include <stdio.h>
using namespace std;
int main() {
    int n=4;

    

    int G[] = { 2135,1862,2639,2581 };


    int sumG = 0;//计算全体员工工资总和,便于之后的验证
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sumG = sumG + G[i];
    }


    int a[] = { 100,50,10,5,1 };//5个面值不同币种
    int m = sizeof(a) / sizeof(a[0]);
   int b[5];//存放个面值对应的张数


    for (int i = 0; i < m; i++) {
        b[i] = m;
    }


    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            while (G[i] >= a[j]) {//每次取最大面值
                G[i] = G[i] - a[j];
                b[j]++;//当前面值对应的张数+1
            }
        }
    }
    //显示各面值对应需要的张数
    for (int i = 0; i < m; i++) {
        cout << "需要" << b[i] << "张面值为" << a[i] << "元的纸币" << endl;
        sum = sum + b[i] * a[i];
    }

    //验证,各个面值与其对应的张数想乘的总和等于全部员工工资的总和,则说明算法正确
    if (sumG == sum) {
        printf("该算法正确!");
    }

}