3 条题解
-
0
题解来自:知乎网友 【杨宗霖】
样例数据 x=24 甲乙丙三人原来的钱数为 13 7 4
不要设方程 不要设方程 不要设方程
使用倒推法(逆序)!!!从最后结果入手,按反向顺序,分步骤推算出每次分钱每个人的钱数
三次分前后 每个人的钱数一样 就是x/3 = 24/3 =8 每个人8块钱
设 int a,b,c 为甲乙丙三个人的钱数 a=8 b=8 c=8
题目有个隐藏信息 甲分钱给乙、丙两人,所分给的数与各人(已有数相同)
意思就是:乙原有的钱乘以2=乙第一次分钱的数 丙原有的钱乘以2=丙第一次分钱的数
后面2次的分法也一样 所分给的数与各人(已有数相同) 就是双倍钱
分钱次数 甲a 乙b 丙c 谁分 最后 8 三次结果 丙c=24-甲a-乙b 三次分钱 4*2 24-8-8 丙c 二次结果 4 16 乙b=24-甲a-丙c 二次分钱 2*2 24-4-16 8*2 乙b 一次结果 2 14 8 甲a=24-乙b-丙c 一次分钱 24-14-8 7*2 4*2 甲a 原始 13 7 4 #include<iostream> using namespace std; int x; int main () { cin>>x; int a=x/3,b=x/3,c=x/3; a=a/2; b=b/2; c=a+b+c; a=a/2; c=c/2; b=b+a+c; b=b/2; c=c/2; a=a+b+c; cout<<a<<" "<<b<<" "<<c; return 0; }
- 1
信息
- ID
- 48
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 5
- 标签
- 递交数
- 37
- 已通过
- 17
- 上传者