例4.1 面包与客人问题
创始人
2025-05-29 13:16:54

赫洛伊丝正在计划一次聚餐,她准备了84个小面包。虽然聚餐时她自己不吃,但她总是准备恰好足够数量的小面包,使每个客人分到的数量正好相同。她邀请的客人数量有哪些可能?

我的解法:

一、信息

  1. 一共84个面包

  1. 他总备好了足够数量的面包使得每个客人分到的数量刚好

  1. 本题的最终目标是求出他邀请的客人数量有哪些?

二、分析

  1. 问题1告诉我面包的总数

  1. 问题2我们可以用抽象的方法把问题用转换的思想转化为整除问题,如果客人分到的面包数量正好相同等价于客人的数量正好整除面包的数量,那么问题就变成了能整除84有多少个数,就有多少个客人。

三、步骤

1.我的想法是对84进行因式分解,84=2*2*21(这里写错了没有把21再分解应该是1*2*2*3*7)再通过枚举法筛除重复的,得到答案2,4,21,42,84客人的数量有上诉的可能。

正确答案:

分析:

表面上看起来,这像个代数问题,并可按照代数列式如下:

令x=赫洛伊丝邀请的客人数目,

令y=每位客人分到的小面包数目

于是得到——xy=84.

这个方程有许多组解;事实上,有无穷多组解。选择每个非零的x值,会令y=84/x即得一组解。例如x=5,y=就是方程的一组解;

x=-2,=-42 同样也是。但这两组解都不符合题目要求。客人不能吃分数个小面包,容人的数目也不可能是负数。也就是说,为了解决例题4.1,我们只考虑x和,-都是正整数的解。显然*=1,1=84是一个解,

5=2,y=42是另一个解。还有更多的解吗?如果有,我们如何确保找到了所有的解?在我们尝试回答之前,先观察例题 4.2我们遇到了类似的情况。

正确答案:

1、2、3、4、6、7、12、14、21、28、42 和 84。

扩展:

这个问题其实就是C语言中的因式分解问题

扩展:

问题能否通过程序写出当面包数为n时客人的数量?

显然是可以的这就是常见的C语言因式分解问题

我的解法:

C语言法:

#include 
int main() 
{int n;printf("请输入一个整数n:");scanf("%d", &n);printf("%d的因数有:", n);for (int i = 1; i <= n; i++) //把1到n都遍历一遍即枚举法
{if (n % i == 0) //如果能整除n那么输出{printf("%d ", i);}
}printf("\n");return 0;
}

反思:

(1)本人因式分解的时候没有分解完全,以后要多加注意了,反映了本人思维的不严谨,以后做出答案都要验算一遍

相关内容

热门资讯

四中全会精神在基层|湖南浏阳:... 转自:新华社田埂上,新铺设完工的灌溉管网开闸,水流喷涌而出。“这块地土壤肥沃,今年除了粮食增产,每亩...
四年84名大学生接力文艺支教 为提升基层特别是农村教师的专业能力和辅导水平,河南省文明办、省教育厅、省文联近年来联合启动“快乐成长...
“她是我唯一的牵挂”,91岁老... 近日,河南郑州91岁王先生告诉记者,老伴生病8年一直是他在照顾,如今老伴去世5年,自己也找了一位50...
始于热爱 归于真诚 在元树巷的小区内,藏着一家充满烟火气的中国福利彩票店。它不临主街,不占喧嚣,却在邻里口耳相传中默默扎...
“数九”,因何从冬至开始? “一九二九不出手,三九四九冰上走……”一首“数九”歌谣,是很多人熟悉的童年回忆。冬至节气一到,“数九...