java穷举法小案例

最近几天伤病没有更新  今天好点 看了一下基础的算法  现在简单更新一下 ——穷举法


一、甲 、乙、丙 三位球迷分别预测进入半决赛的四队A、B、C、D的名次如下: 
甲:A 第一名 、B 第二名 
乙:C 第一名 、D 第三名 
丙:D第一名 、 A 第三名 
设比赛结果,四队互不相同,并且甲乙丙的预测各对一半,求A、B、C、D队的名次? 


现在简单分析下

 采用穷举法令变量a,b,c,d分别为四个名次: 
* 方法一:前者正确,则后者错误,既(a==1)&&(b!=2)||(a!=1)&&(b==2) 
* 方法二:两者不允许同时成立,既是条件a==1和b==2不允许相等。(a==1)!=(b==2) 

  public static void main(String[] args) {
	        	  int a,b,c,d;
		          boolean t;
		          //循环写出所有的可能
		         
		          for (a=1; a <=4; a++) {
					 for ( b= 1;  b<=4 ; b++) {
						
						 if (a==b) {
							continue;
						}
						 for (c = 1;  c<=4; c++) {
							 if (c==a||c==b) {
								continue;
							}
					d=10-a-b-c;
					t=((a==1)&&(b!=2)||(a!=1)&&(b==2))
							&&((c==1)&&(d!=3)||(c!=1)&&(d==3))&&((d==2)&&(a!=3)||(d!=2)&&(a==3));
							 
					 if(t){
	                        System.out.println("A="+a);
	                        System.out.println("B="+b);
	                        System.out.println("C="+c);
	                        System.out.println("D="+d);
	                    }
						}
					}
		        	   
		        	  
				}
			}
	 
	   
	     
	   
}



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值