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

Chương trình C++ tính tỷ lệ chia sẻ lợi nhuận

Cho một mảng số tiền đầu tư bởi nhiều người và một mảng khác chứa khoảng thời gian đầu tư tương ứng của từng người, nhiệm vụ là tạo ra tỷ lệ chia sẻ lợi nhuận.

Tỷ lệ chia sẻ lợi nhuận là gì?

Trong một công ty hợp danh, lợi nhuận và lỗ được chia sẻ giữa các đối tác tùy thuộc vào vốn họ đầu tư vào kinh doanh. Dựa trên phần trăm đầu tư vốn đó, chúng ta tính tỷ lệ chia sẻ lợi nhuận cho thấy số tiền lợi nhuận sẽ được đưa cho mỗi đối tác.

Công thức:

Đối tác 1 = vốn đầu tư * khoảng thời gian

Đối tác 2 = vốn đầu tư * khoảng thời gian

Đối tác 3 = vốn đầu tư * khoảng thời gian

...

Người n = vốn đầu tư * khoảng thời gian

Tỷ lệ chia sẻ lợi nhuận = Đối tác 1 : Đối tác 2 : Đối tác 3 : ...

Ví dụ

Đầu vào: amount[] = {1000, 2000, 2000}, time[] = {2, 3, 4}
Đầu ra: tỷ lệ chia sẻ lợi nhuận 1 : 3 : 4

Đầu vào: amount[] = {5000, 6000, 1000}, time[] = {6, 6, 12}
Đầu ra: tỷ lệ chia sẻ lợi nhuận 5 : 6 : 2

Phương pháp giải quyết bài toán:

  • Nhập mảng vốn đầu tư bởi nhiều đối tác và mảng thời gian tương ứng
  • Nhân vốn của một đối tác với thời gian của người đó, làm tương tự với các đối tác khác
  • Tính tỷ lệ của các giá trị đã nhân
  • Hiển thị kết quả cuối cùng

THUẬT TOÁN

BẮT ĐẦU
Bước 1 → Khai báo hàm tính GCD
    int GCD(int arr[], int size)
    Khai báo int i
    Khai báo int result = arr[0]
    VỒNG LẶP VỚI i = 1; i < size; i++
        Gán result = __gcd(arr[i], result)
    KẾT THÚC
    TRẢ VỀ result

Bước 2 → Khai báo hàm tính tỷ lệ chia sẻ lợi nhuận
    void cal_ratio(int amount[], int time[], int size)
    Khai báo int i, arr[size]
    VỒNG LẶP VỚI i = 0; i < size; i++
        Gán arr[i] = amount[i] * time[i]
    KẾT THÚC
    Khai báo int ratio = GCD(arr, size)
    VỒNG LẶP VỚI i = 0; i < size - 1; i++
        In arr[i] / ratio và " : "
    KẾT THÚC
    In arr[i] / ratio

Bước 3 → Trong main()
    Khai báo int amount[] = {1000, 2000, 2000}
    Khai báo int time[] = {2, 3, 4}
    Tính int size = sizeof(amount) / sizeof(amount[0])
    Gọi cal_ratio(amount, time, size)
DỪNG

Ví dụ mã nguồn

#include <bits/stdc++.h>
using namespace std;

// Tính GCD
int GCD(int arr[], int size) {
    int i;
    int result = arr[0];
    for (i = 1; i < size; i++)
        result = __gcd(arr[i], result);
    return result;
}

// Tính tỷ lệ chia sẻ lợi nhuận
void cal_ratio(int amount[], int time[], int size) {
    int i, arr[size];
    for (i = 0; i < size; i++)
        arr[i] = amount[i] * time[i];
    int ratio = GCD(arr, size);
    for (i = 0; i < size - 1; i++)
        cout << arr[i] / ratio << " : ";
    cout << arr[i] / ratio;
}

int main() {
    int amount[] = {1000, 2000, 2000};
    int time[] = {2, 3, 4};
    int size = sizeof(amount) / sizeof(amount[0]);
    cout << "profit sharing ratio ";
    cal_ratio(amount, time, size);
    return 0;
}

Kết quả đầu ra

profit sharing ratio 1 : 3 : 4