Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Thao tác mảng và tính tổng trong C/C++

Cho mảng n phần tử và giá trị S. Tìm K trong mảng sao cho: thay tất cả phần tử > K bằng K, tổng mảng mới = S. Không tìm thấy -> -1.

Ví dụ

Array: {12,6,3,7,8}, S=15 -> K=3
Final array: {3,3,3,3,3}, Sum=15

Thuật toán

getVal(arr,n,S)
    SẮP XẾP arr TĂNG DẦN
    sum=0
    VỚI i=0 ĐẾN n-1
        NẾU sum + arr[i]*(n-i) == S -> TRẢ VỀ arr[i]
        sum += arr[i]
    TRẢ VỀ -1

Chương trình C++ ví dụ

#include <iostream>
#include <algorithm>
using namespace std;

int getVal(int arr[], int n, int S) {
    sort(arr,arr+n);
    int sum=0;
    for(int i=0;i

Kết quả

3