กำหนดอาร์เรย์ของจำนวนเงินที่ลงทุนโดยหลายคน และอีกอาร์เรย์หนึ่งเก็บระยะเวลาที่เงินถูกลงทุนโดยแต่ละคน งานคือสร้างอัตราส่วนการแบ่งกำไร
อัตราส่วนการแบ่งกำไรคืออะไร
ในบริษัทหุ้นส่วน กำไรและขาดทุนจะถูกแบ่งระหว่างหุ้นส่วนขึ้นอยู่กับเงินทุนที่ลงทุนในธุรกิจ จากเปอร์เซ็นต์การลงทุน เราคำนวณอัตราส่วนการแบ่งกำไรซึ่งแสดงจำนวนกำไรที่จะให้แต่ละหุ้นส่วน
สูตร − หุ้นส่วน 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