1 条题解
-
0
题目:三人分钱问题
思路分析
-
任务拆解:
- 从最终状态(每人8元)开始逆向计算
- 按照相反顺序还原分钱过程
- 求出最初各人的钱数
-
关键点分析:
- 采用逆向思维,从结果倒推初始状态
- 每次分钱时,分钱者将自己的钱分给另外两人
- 逆向操作:分钱者收回自己分出去的钱
-
步骤规划:
- 从最终每人8元开始
- 逆向丙分钱:甲、乙各还钱给丙
- 逆向乙分钱:甲、丙各还钱给乙
- 逆向甲分钱:乙、丙各还钱给甲
- 得到最初的钱数
-
代码对应:
int a=8,b=8,c=8;- 初始化最终状态a/=2;b/=2; c=a+b+c;- 逆向丙分钱过程a/=2;c/=2; b=a+b+c;- 逆向乙分钱过程b/=2;c/=2; a=a+b+c;- 逆向甲分钱过程printf("%d\n%d\n%d\n",a,b,c);- 输出最初钱数
注: 代码通过逆向计算,从最终每人8元倒推出最初甲13元、乙7元、丙4元
-
- 1
信息
- ID
- 1215
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 431
- 已通过
- 217
- 上传者