048:【例10.2】分钱游戏
【题目描述】
甲、乙、丙三人共有𝑥x元钱,先由甲分钱给乙、丙两人,所分给的数与各人已有数相同;接着由乙分给甲、丙,分法同前;再由丙分钱给甲、乙,分法亦同前。经上述三次分钱之后,每个人的钱数恰好一样多。 求原先各人的钱数分别是多少?
【输入】
三个人的总钱数。(0≤𝑥≤1090≤x≤109)
【输出】
甲乙丙三人原有的钱数,用空格隔开。
【输入样例】
24
【输出样例】
13 7 4
#include<bits/stdc++.h>
using namespace std;
int main () {
int x,a,b,c;
cin>>x;
// 思维导图(逆推)<不理解多看看题>
//甲 24/3=8 8/2=4(a) 4/2=2(c) 2+7(e)+4(f)=13
//乙 24/3=8 =>8/2=4(b) => 4+8(c)+2(d)=14 =>14/2=7(e)
//丙 24/3=8 8+4(a)+4(b)=16 16/2=8(d) 8/2=4(f)
a=x/3;
b=x/3;
c=x/3;
c=c+a/2+b/2;
a=a/2;
b=b/2;
b=b+a/2+c/2;
a=a/2;
c=c/2;
a=a+b/2+c/2;
b=b/2;
c=c/2;
cout<<a<<" "<<b<<" "<<c<<endl;
return 0;
}