编辑代码


#include <iostream>
 
#include <xmath.h>
 
#include <algorithm>
#include <stdio.h>
using namespace std;
int main(){
    int n;
 
   printf("输入员工数n:");
    scanf("%d",&n);
 
 
   printf("依次输入员工的工资");
    int G[n];
    for(int i=0;i<n;i++){
        scanf("%d",&G[i]);
    }
 
 
    int sumG = 0;//计算全体员工工资总和,便于之后的验证
    int sum = 0;
    for(int i=0;i<n;i++){
        sumG = sumG + G[i];
    }
    
 
    int a[] = {100,50,20,10,5,2,1};//7个面值不同币种
    int m=sizeof(a)/sizeof (a[0]);
    int b[m] ;//存放个面值对应的张数
 
 
    for(int i=0;i<m;i++){
        b[i]=0;
    }
 
 
    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("该算法正确!");
    }
   }