找回密码
 中文实名注册
查看: 185|回复: 2

1203: 【入门】分书

[复制链接]

696

主题

1084

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22841
发表于 2022-6-26 18:02:29 | 显示全部楼层 |阅读模式
题目描述
甲、乙、丙三人共有384本书,先由甲分给乙、丙,所给书数分别等于乙、丙已有的书数,再由乙分给甲、丙,最后由丙分给甲、乙,分法同前,结果三人图书数相等。编程求甲、乙、丙三人原各有书多少本?
输入

输出


解题思路:
甲的书数 乙的书数 丙的书数 (每个数间空格隔开)
提示
可以采用倒推法:从最后一次分书开始,一步步把书还回去。


甲x,乙y,丙z
x+y+z=384

最后一次分后

甲乙丙=384/3




回复

使用道具 举报

1

主题

57

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
发表于 2022-6-26 18:16:57 | 显示全部楼层
[C++] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
    cout<<"208"<<" "<<"112"<<" "<<"64"<<endl;
    return 0;
}
回复

使用道具 举报

696

主题

1084

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22841
 楼主| 发表于 2022-6-26 18:15:36 | 显示全部楼层
[C++] 纯文本查看 复制代码
#include <stdio.h>

int main() {
char* s[] = { "甲", "乙", "丙" };
int book[3], i, temp, j;

for (i = 0; i < 3; i++) {
	book[i] = 384 / 3;
	}
	
for (i = 2; i >= 0; i--)
 {
	temp = 0;
	for (j = 0; j < 3; j++) 
	{
		if (i == j) 
			continue;
		temp += book[j] / 2;
			book[j] /= 2;
	}
	book[i] += temp;
}
printf("分书之前: \n");

for (i = 0; i < 3; i++) 
	{
	printf("%s 有 %d 本\n", s[i], book[i]);
	}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 中文实名注册

本版积分规则

小黑屋|东台市机器人学会 ( 苏ICP备2021035350号-1;苏ICP备2021035350号-2;苏ICP备2021035350号-3 )

GMT+8, 2024-5-7 22:25 , Processed in 0.039811 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表