24点java代码
来源:互联网 发布:淘宝信誉评价表 编辑:程序博客网 时间:2024/06/06 09:32
这是24点游戏的代码,输入4个数(空格隔开),输出4个数的不同组合,算出24。输出所有结果,答案会因为交换顺序而有重复。
很抱歉没有注释。。。
package _24net;
import java.util.Scanner;
public class _24net {
public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); int[] a= {0,0,0,0}; for(int i = 0; i< 4;i++){ a[i] = scanner.nextInt(); } f(a,3); System.out.println("over");}private static void f(int[] a,int b) { if(b==0){ f2(a,3,""); return; } int t; for(int i = b;i >= 0; i--){ t = a[i]; a[i] = a[b]; a[b] = t; f(a, b-1); t = a[i]; a[i] = a[b]; a[b] = t; }}private static void f2(int[] a,int b,String s) { if(b==0){ if(a[0]==24) System.out.println(s); return; } if(b==2){ int m = a[2]; a[2] = a[0]; a[0] = m; int t; t = a[b-1]; a[b-1] = a[b]+t; f2(a, b-1,s+a[b]+" + "+t+" = "+a[b-1]+"; "); a[b-1] = t; t = a[b-1]; a[b-1] = a[b]-t; f2(a, b-1,s+a[b]+" - "+t+" = "+a[b-1]+"; "); a[b-1] = t; t = a[b-1]; a[b-1] = a[b]*t; f2(a, b-1,s+a[b]+" * "+t+" = "+a[b-1]+"; "); a[b-1] = t; t = a[b-1]; if(t != 0 ){ a[b-1] = a[b]/t; f2(a, b-1,s+a[b]+" / "+t+" = "+a[b-1]+"; "); a[b-1] = t; } t = a[b-1]; if( a[b] != 0 ){ a[b-1] = t/a[b]; f2(a, b-1,s+t+" / "+a[b]+" = "+a[b-1]+"; "); a[b-1] = t; } m = a[2]; a[2] = a[0]; a[0] = m; } int t1; t1 = a[b-1]; a[b-1] = a[b]+t1; f2(a, b-1,s+a[b]+" + "+t1+" = "+a[b-1]+"; "); a[b-1] = t1; t1 = a[b-1]; a[b-1] = a[b]-t1; f2(a, b-1,s+a[b]+" - "+t1+" = "+a[b-1]+"; "); a[b-1] = t1; t1 = a[b-1]; a[b-1] = a[b]*t1; f2(a, b-1,s+a[b]+" * "+t1+" = "+a[b-1]+"; "); a[b-1] = t1; t1 = a[b-1]; if(t1 != 0){ if(a[b]%t1==0){ a[b-1] = a[b]/t1; f2(a, b-1,s+a[b]+" / "+t1+" = "+a[b-1]+"; "); a[b-1] = t1; } } t1 = a[b-1]; if(a[b] != 0){ if(t1%a[b]==0){ a[b-1] = t1/a[b]; f2(a, b-1,s+t1+" / "+a[b]+" = "+a[b-1]+"; "); a[b-1] = t1; } }}
}
阅读全文
0 0
- 24点java代码
- 24点算法的java代码
- java经典24点算法代码
- 24点算法详解--Java代码实现
- java 代码点 代码单元
- Java中的代码点和代码单元
- Java中的代码点和代码单元
- Java中的代码点和代码单元
- Java中的代码点和代码单元
- Java中的代码点和代码单元
- Java中的代码点和代码单元
- Java中的代码点与代码单元
- Java中的代码点和代码单元
- Java中的代码点和代码单元
- Java中的代码点与代码单元
- Java代码点和代码单元
- JAVA 代码点和代码单元
- java 代码点和代码单元
- 调用天气预报以及接口出现乱码解决方法
- python3 urllib 访问https网站
- ROIPoolingLayer源码解析
- 11.29作业
- &和&&的区别?
- 24点java代码
- Hadoop的分布式缓存
- node.js中的全局对象Buffer
- codesys runtime 修改默认串口映射关系
- Struts2运行原理
- 用标准IO把本地时间写入文件
- 使用pullToRefresh进行下拉刷新和上拉加载
- 虚拟网络接口bond
- iptables、netfilter