平分红酒

来源:互联网 发布:大数据 客户画像 编辑:程序博客网 时间:2024/04/27 08:49

题目
假定有三瓶红酒,将每瓶中的酒平分给几个人喝,但喝各瓶酒的人数不同,不过其中有一个人喝了每一瓶中的酒,且加起来刚好是一瓶,请问喝这三瓶酒的各有多少人?

解决思路
在编程这道题时,这是一道解方程式的题目,由已知条件得出 每瓶酒都至少有俩个人喝。猜测解的变化范围应该在【0,10】之间。然后用 if 语句进行判断,打印出结果。

遇到的问题
最初在 if 判断语句中 if(1/x+1/y+1/z == 1)时发现执行不了,因为输入的是整形,所以当1/x < 1 时会变为 0,应该进行字符型转换为浮点型。最终我选择用(x*y+x*z+y*z == x*y*z)规避了这个问题。

自己编写的代码如下:

#include <stdio.h>int main(){    int x,y,z;    for( x = 2; x < 10; x++)     for( y = 3; y < 10; y++)      for( z = 4; z < 10; z++)       if( x != y && y != z && x*y+x*z+y*z == x*y*z)         printf("%d  %d  %d\n",x,y,z);    return 0;}

运行结果:

2  3  6
0 0
原创粉丝点击