Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ คำนวณอัตราส่วนการแบ่งกำไร

กำหนดอาร์เรย์ของจำนวนเงินที่ลงทุนโดยหลายคน และอีกอาร์เรย์หนึ่งเก็บระยะเวลาที่เงินถูกลงทุนโดยแต่ละคน งานคือสร้างอัตราส่วนการแบ่งกำไร

อัตราส่วนการแบ่งกำไรคืออะไร

ในบริษัทหุ้นส่วน กำไรและขาดทุนจะถูกแบ่งระหว่างหุ้นส่วนขึ้นอยู่กับเงินทุนที่ลงทุนในธุรกิจ จากเปอร์เซ็นต์การลงทุน เราคำนวณอัตราส่วนการแบ่งกำไรซึ่งแสดงจำนวนกำไรที่จะให้แต่ละหุ้นส่วน

สูตร − หุ้นส่วน 1 = เงินทุนที่ลงทุน * ระยะเวลา

หุ้นส่วน 2 = เงินทุนที่ลงทุน * ระยะเวลา

หุ้นส่วน 3 = เงินทุนที่ลงทุน * ระยะเวลา

หุ้นส่วน 4 = เงินทุนที่ลงทุน * ระยะเวลา . . .

บุคคล n = เงินทุนที่ลงทุน * ระยะเวลา

อัตราส่วนการแบ่งกำไร = หุ้นส่วน 1 : หุ้นส่วน 2 : หุ้นส่วน 3

ตัวอย่าง

Input: amount[] = { 1000, 2000, 2000 } time[] = { 2, 3, 4 } Output: profit sharing ratio 1 : 3 : 4
Input: amount[] = {5000, 6000, 1000} time[] = {6, 6, 12} Output: profit sharing ratio 5 : 6 : 2

วิธีการที่เราจะใช้แก้ปัญหา

  • รับอินพุตเป็นอาร์เรย์ของเงินทุนที่ลงทุนโดยหุ้นส่วนหลายคน และอีกอาร์เรย์สำหรับระยะเวลาที่ลงทุน
  • คูณเงินทุนของหุ้นส่วนคนหนึ่งกับระยะเวลาที่สอดคล้องกัน และทำซ้ำกับหุ้นส่วนคนอื่น
  • คำนวณอัตราส่วนของค่าที่คูณได้
  • แสดงผลลัพธ์สุดท้าย

อัลกอริทึม

Start
step 1 → ประกาศฟังก์ชันคำนวณ GCD
  int GCD(int arr[], int size)
  ประกาศ int i
  ประกาศ int result = arr[0]
  ลูป For i = 1 และ i < size และ i++
    ตั้งค่า result = __gcd(arr[i], result)
  End
  return result

step 2 → ประกาศฟังก์ชันคำนวณอัตราส่วนการแบ่งกำไร
  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]
  End
  ประกาศ int ratio = GCD(arr, size)
  ลูป For i = 0 และ i < size - 1 และ i++
    พิมพ์ arr[i] / ratio
  End
  พิมพ์ arr[i] / ratio

Step 3 → ใน main()
  ประกาศ int amount[] = { 1000, 2000, 2000 }
  ประกาศ int time[] = { 2, 3, 4 }
  คำนวณ int size = sizeof(amount) / sizeof(amount[0])
  เรียก cal_ratio(amount, time, size)
Stop

ตัวอย่างโค้ด

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

// คำนวณ 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; 
} 

// คำนวณอัตราส่วนการแบ่งกำไร
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; 
}

ผลลัพธ์

profit sharing ratio 1 : 3 : 4