问题
一普查员问一位女士,“你有多少个孩子,他们多少岁?”女士回答:“我有三个孩子,他们的岁数相乘是36,岁数相加就等于隔离间屋的门牌号码.”普查员立刻走到隔邻,看了一看,回来说:”我还需要多少资料.”女士回答:“我现在很忙,我最大的孩子正在楼上睡觉.”普查员说:”谢谢,我己知道了
问题:那三个孩子的岁数是多少?
思路(引用)
- 首先考虑将36分解成三个因子相乘,及获取不重复排列。
- 岁数相加是门牌号,普查员此时是能看到门牌号的,但是此时并不能得到结果,那么说明问题的解,存在于多组和相等的门牌号中。
- 最大的孩子在睡觉,能得到结果,可得知,上面求得的多组和相等的排列中,排列中有且只有一个最大值。该排列从大到小输出,就是问题的解。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n=36;
int a[20][3];
int flag=0;
in