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

来源:互联网 发布:vb.net与数据库连接 编辑:程序博客网 时间:2024/05/18 08:35

题目:100匹马背100担粮。 大马一匹背3担,中马一匹背2担。小马2匹背一担。请编程输出所有满足条件的情况.分析:依题意:设大马匹数为X(匹),中马y(匹),小马z(匹).那么可以列出方程x+y+z=1003x+2y+z/2=1000<=x<=330<=y<=500<=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.   
  3. 第【1】种情况--大马:2 中马:30 小马:68  
  4. [检测]马的总匹数:100  粮食的总担数:100  
  5.   
  6. 第【2】种情况--大马:5 中马:25 小马:70  
  7. [检测]马的总匹数:100  粮食的总担数:100  
  8.   
  9. 第【3】种情况--大马:8 中马:20 小马:72  
  10. [检测]马的总匹数:100  粮食的总担数:100  
  11.   
  12. 第【4】种情况--大马:11 中马:15 小马:74  
  13. [检测]马的总匹数:100  粮食的总担数:100  
  14.   
  15. 第【5】种情况--大马:14 中马:10 小马:76  
  16. [检测]马的总匹数:100  粮食的总担数:100  
  17.   
  18. 第【6】种情况--大马:17 中马:5 小马:78  
  19. [检测]马的总匹数:100  粮食的总担数:100  
  20.   
  21. 第【7】种情况--大马:20 中马:0 小马:80  
  22. [检测]马的总匹数:100  粮食的总担数:100  
  23.   


0 0
原创粉丝点击