3G行业面试出的Java编程题

题目:100匹马背100担粮。 大马一匹背3担,中马一匹背2担。小马2匹背一担。请编程输出所有满足条件的情况.

分析:

依题意:设大马匹数为X(匹),中马y(匹),小马z(匹).那么可以列出方程

x+y+z=100

3x+2y+z/2=100

0<=x<=33

0<=y<=50

0<=z<=100并且z必须能被2整除(因为一只小马背不动一担粮.)

其中x,y,z都是整数.

解出x,y,z

以上的思路用java来实现,如下:

 

class Horse

{

	int x;//大马匹数

	int y;//中马

	int z;//小马

	

	int i=0;//用于统计满足条件的个数

	

	int count_horse;//马的总匹数

	int count_foot;//粮食的总担数

	

	public void Operation()

	{

		for(z=0;z<=100;z++)

		{

			for(y=0;y<=50;y++)

			{

				x=100-y-z;

				if( (x>=0) && (x<=33) && (y>=0) && (y<=50) && (z>=0) && (z<=100) && (z%2==0) )

				{

					if(  ((x+y+z)==100)  &&  ((3*x+2*y+z/2)==100)  )

					{

						i++;

						System.out.println("第【"+i+"】种情况--大马:"+x+" 中马:"+y+" 小马:"+z);	

						

						//检测结果是否满足题意

						

						count_horse=x+y+z;//马的匹数

						

						count_foot=3*x+2*y+z/2;//粮食的总担数

						

						System.out.println("[检测]马的总匹数:"+count_horse+"  粮食的总担数:"+count_foot+"\n");

					}

				}

			}

		}

	}

	

	public static void main(String[]args)

	{

			Horse h=new Horse();

			h.Operation();

	}

}

打印结果:



第【1】种情况--大马:2 中马:30 小马:68

[检测]马的总匹数:100  粮食的总担数:100



第【2】种情况--大马:5 中马:25 小马:70

[检测]马的总匹数:100  粮食的总担数:100



第【3】种情况--大马:8 中马:20 小马:72

[检测]马的总匹数:100  粮食的总担数:100



第【4】种情况--大马:11 中马:15 小马:74

[检测]马的总匹数:100  粮食的总担数:100



第【5】种情况--大马:14 中马:10 小马:76

[检测]马的总匹数:100  粮食的总担数:100



第【6】种情况--大马:17 中马:5 小马:78

[检测]马的总匹数:100  粮食的总担数:100



第【7】种情况--大马:20 中马:0 小马:80

[检测]马的总匹数:100  粮食的总担数:100



*/

 

 

你可能感兴趣的:(java编程)