1 条题解

  • 0
    @ 2026-1-28 15:23:26
    #include<bits/stdc++.h>
    using namespace std;
    
    int arr[10100]; // 存储每种礼物的数量
    
    int main(){
        int n; // [1] 礼物的种类数
        cin >> n;
        
        // [2] 输入每种礼物的当前数量
        for(int i = 0; i < n; i++) cin >> arr[i];
        
        // [3] 遍历每种礼物,将数量调整到满足要求(≥10 且是4的倍数)
        for(int i = 0; i < n; i++){
            // 若当前数量已经满足要求,无需调整
            if(arr[i] >= 10 && arr[i] % 4 == 0) continue; 
            
            // 若数量小于10,先将其提升到最小基准值10
            if(arr[i] < 10) arr[i] = 10;
            
            // 循环加1,直到数量是4的倍数
            for(int j = 1; arr[i] % 4 != 0; j++){
                arr[i] = arr[i] + 1;
            }
        }
        
        // [4] 对调整后的数量进行升序排序
        sort(arr, arr + n);
        
        // [5] 逆序输出(从后往前遍历),实现从大到小的输出效果
        for(int i = n - 1; i >= 0; i--)
            cout << arr[i] << " ";
        
        return 0;
    }
    
    • 1

    信息

    ID
    1194
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    1
    已通过
    1
    上传者