用枚举法填运算符

来源:互联网 发布:nginx cc攻击防御 编辑:程序博客网 时间:2024/06/04 23:25

演示一个 5 ? 5?5?5?=5

 import java.util.*; public class Text1{public static void main(String[]args){int j ;//循环变量int []type=new int[5];//类加运算符的样式int sign;//保存运算的正负号int result;//结果int count=0;//数量int []num=new int[6];//保存数组float left , right;保存中间值,left保存+-运算的值right保存*/运算值char []oper=new char[]{' ','+','-','*','/'};System.out.println("请输入五个数");for(j=1 ;j<=5 ;j++ ){num[j]=new Scanner(System.in).nextInt();}System.out.println("请输出结果");result = new Scanner(System.in).nextInt();for(type[1]=1 ;type[1]<=4 ;type[1]++ ){if((type[1]<4) || (num[2]!=0)){for( type[2]=1 ;type[2]<=4 ;type[2]++  ){if((type[2]<4) || (num[3]!=0)){for( type[3]=1 ;type[3]<=4 ;type[3]++  ){if((type[3]<4) || (num[4]!=0)){for( type[4]=1 ;type[4]<=4 ;type[4]++  ){if((type[4]<4) || (num[5]!=0)){left=0;right = num[1];sign = 1;for(j=1 ;j<=4 ;j++ ){//System.out.print(oper[type[4]]+" ");switch(oper[type[j]]){case '+':{left = left+sign*right;sign=1;right = num[j+1];break;}case '-':{left = left+sign*right;sign=-1;right = num[j+1];break;}case '*':{right =right*num[j+1];break;}case '/':{right = right/num[j+1];break;}}}if((left+sign*right)==result){count++;System.out.print(count+":");for(j=1 ; j<=4;j++ ){System.out.print(num[j]+""+oper[type[j]]);}System.out.println(num[5]+"="+result);}}}}}}}}}} }


0 0
原创粉丝点击