案例说明:一家农户以果园为生,一天,父亲推一车苹果,共2520个,准备分给他的6个儿子。父亲按事先写在一张纸条上的数字把这堆苹果分完,每个人分到的苹果个数都不一样。他说,老大,把你的苹果1/8给老二,老二拿到苹果后,连同原来的苹果的1/7分给老三,老三拿到苹果后,连同原来的苹果的1/6分给老四,其他的兄弟(老四、老五)同理,到老六的时候,老六将得到的加原先的苹果的1/3分给老大,这样你们的苹果就一样多了。问兄弟6人原先各分到了多少个苹果?
程序:
#include<iostream>
using namespace std;
int main()
{
int arr[6]; //存放六兄弟未分前的苹果个数
int arr2[6]; //存放六兄弟原先分到的苹果个数
int aver = 2520 / 6;
for (int i = 1; i < 6; i++) //老二到老六未分给兄弟前的苹果数
{
arr[i] = aver * (8 - i) / (7 - i);
}
arr2[0]=arr[0] = (aver - arr[5] / 3) * 8 / 7; //老大未分给兄弟前的苹果数
//老二到老六未得到兄弟的苹果,也未分苹果
for (int i = 1; i < 6; i++)
{
arr2[i] = arr[i] - arr[i - 1] / (9 - i);
}
for (int i = 0; i < 6; i++)
{
cout << "老" << i + 1 << "原先苹果个数:" << arr2[i] << endl;
}
}
运行结果: