【一本通】分钱游戏
甲、乙、丙三人共有 n 元钱,先由甲分钱给乙,丙两人,所分给的数与各人已有数相同;接着由乙分给甲、丙,分法同前;再由丙分钱给甲、乙,分法亦同前。经上述三次分钱之后,每个人的钱数恰好一样多。求原先各人的钱数分别是多少?
【一本通】分钱游戏
💐The Begin💐点点关注,收藏不迷路💐
|
甲、乙、丙三人共有 n 元钱,先由甲分钱给乙,丙两人,所分给的数与各人已有数相同;接着由乙分给甲、丙,分法同前;再由丙分钱给甲、乙,分法亦同前。经上述三次分钱之后,每个人的钱数恰好一样多。求原先各人的钱数分别是多少?
输入
甲、乙、丙三人共有钱数,整数,为3的整数倍。
输出
原先各人的钱数,按5位宽度输出,左对齐
样例输入
24
样例输出
a=13 b=7 c=4
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int n; // 定义变量,用于存储甲、乙、丙三人共有的钱数
cin >> n; // 从标准输入读取三人共有的钱数
int final_amount = n / 3; // 经过三次分钱后,每人最终的钱数,因为总钱数最后平均分三份
int a3 = final_amount / 2; // 第三次分钱前甲的钱数是第三次分钱后钱数的一半,因为丙分给甲后甲的钱数翻倍了
int b3 = final_amount / 2; // 同理,第三次分钱前乙的钱数是第三次分钱后钱数的一半
int c3 = n - a3 - b3; // 第三次分钱前丙的钱数,用总钱数减去甲、乙第三次分钱前的钱数
int a2 = a3 / 2; // 第二次分钱前甲的钱数是第三次分钱前甲钱数的一半,因为乙分给甲后甲的钱数翻倍了
int c2 = c3 / 2; // 第二次分钱前丙的钱数是第三次分钱前丙钱数的一半,同理
int b2 = n - a2 - c2; // 第二次分钱前乙的钱数,用总钱数减去甲、丙第二次分钱前的钱数
int b1 = b2 / 2; // 第一次分钱前乙的钱数是第二次分钱前乙钱数的一半,因为甲分给乙后乙的钱数翻倍了
int c1 = c2 / 2; // 第一次分钱前丙的钱数是第二次分钱前丙钱数的一半,同理
int a1 = n - b1 - c1; // 第一次分钱前甲的钱数,用总钱数减去乙、丙第一次分钱前的钱数
// 使用printf按照紧凑格式输出,%d表示输出整数
printf(“a=%d b=%d c=%d”, a1, b1, c1); // 输出三人最初的钱数
return 0;
}
💐The End💐点点关注,收藏不迷路💐
|
更多推荐
所有评论(0)