编程高手来帮忙!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/20 11:11:45
教授问比尔三个女儿的芳龄,比尔说三个女儿的年龄乘在一起是2450,他们年龄的和是教授的一半,并且她们的努力不相等,求算法?

分析:
第一:根据“准备带三个女孩乘车游览!”,确定三女年龄不太大;
第二:根据“把她们年龄乘在一起得到2450”,三人年龄有以下几种可能的组合:
(1)2、25、49
(2)2、35、35
(3)5、7、70
(4)5、10、49
(5)5、14、35
(6)7、7、50
(7)7、10、35
(8)7、14、25
第三:根据“可她们年龄和恰是您年龄的两倍”,可知三人年龄和为偶数,故排除(2);
第四:根据 :“是的,我忘了提起,我的年龄至少要比那个岁数最大的小一岁。”而这使得一切都变得清楚了!可以排除(1)(4)(5)(7);
第五:根据第一和第四,可以进一步排除(3)(6),最后只能是(8)。
即:她们的年龄分别是7岁、14岁和25岁。

解:1,她们年龄的乘积为2450,说明她们的年龄小于25,因为25*25*25》2450
2,他们年龄的和是教授的一半,即她们年龄的总和*2是教授的年龄
得出算法的源程序如下:

main()
{
int i,j,z,a,x;
clrscr();
for (i=1;i<=25;i++)/*最大AGE只可能是25,因为25*25*25》2450*/
for (j=1;j<=i;j++)
for (z=1;z<=j;z++)
{
x=i*j*z;
if (i!=j&&i!=z&&j!=z&&x==2450)/*求满足条件的三个数,年龄乘在一起是2450,AGE各不相等*/
{
a=(i+j+z)*2;/*授的AGE*/
printf("%d %d %d\n",i,j,z);
}
}
printf("jiao shou age is:%d\