【程序5】填运算符

[java]  view plain copy
  1. /*【程序5】 
  2.  * 在下面的算式中添加上“+、-、*、/”运算符,使等式成立(不使用括号); 
  3.  * 5   5   5   5   5 = 5 
  4.  * 1.4  枚举(穷举)算法 
  5.  * 1.4.3  实例:填运算符 
  6.  *  
  7.     由于算术表达式的特殊性,在编程求解这个算式时,需要注意以下几点: 
  8.     当填入除号时,要求右侧的数不能为0。 
  9.     乘除的运算级别比加减高。             
  10.  
  11.     5 + 5 - 5 * 5 / 5 = 5 
  12.  */  
  13.   
  14. import java.util.Scanner;  
  15. public class T005 {  
  16.     public static void main(String[] args){  
  17.         Scanner scan = new Scanner(System.in);  
  18.         System.out.print("输入5个数:");  
  19.         int num[] = new int[5];  
  20.         for(int i=0;i<5;i++){  
  21.             num[i] = scan.nextInt();  
  22.         }  
  23.         System.out.print("输入结果:");  
  24.         int result = scan.nextInt();      
  25.         char[] oper = {'+','-','*','/'};  
  26.         int count=0// 计数   
  27.         int i[] = new int[4];   // 循环用 i[0] i[1] i[2] i[3]  
  28.           
  29.         for(i[0]=0;i[0]<4;i[0]++){   // (i=0,1,2,3) 0='+', 1='-', 2='*', 3='/'  
  30.             if(i[0]<3||num[1]!=0){  
  31.                   
  32.                 for(i[1]=0;i[1]<4;i[1]++){  
  33.                     if(i[1]<3||num[2]!=0){  
  34.                           
  35.                         for(i[2]=0;i[2]<4;i[2]++){  
  36.                             if(i[2]<3||num[3]!=0){  
  37.                                   
  38.                                 for(i[3]=0;i[3]<4;i[3]++){  
  39.                                     if(i[3]<3||num[4]!=0){  
  40.                                         float left = 0;  
  41.                                         float right = num[0];  
  42.                                         int sign = 1;   // 正负号  
  43.                                         for(int j=0;j<4;j++){  
  44.                                             switch(oper[i[j]]){  
  45.                                                 case '+':  
  46.                                                     left = left+sign*right;  
  47.                                                     sign = 1;  
  48.                                                     right = num[j+1];  
  49.                                                     break;  
  50.                                                 case '-':  
  51.                                                     left = left+sign*right;  
  52.                                                     sign = -1;  
  53.                                                     right = num[j+1];  
  54.                                                     break;  
  55.                                                 case '*':  
  56.                                                     right = right * num[j+1];  
  57.                                                     break;  
  58.                                                 case '/':  
  59.                                                     right = right / num[j+1];  
  60.                                                     break;  
  61.                                             }  
  62.                                         }  
  63.                                         if(left+sign*right == result){  
  64.                                             count++;  
  65.                                             System.out.print(count+":");  
  66.                                             for(int j=0;j<4;j++){  
  67.                                                 System.out.print(num[j]+""+oper[i[j]]+"");  
  68.                                             }  
  69.                                             System.out.println(num[4]+"="+result);  
  70.                                         }  
  71.                                     }  
  72.                                 }  
  73.                             }  
  74.                         }  
  75.                     }  
  76.                 }  
  77.             }  
  78.         }  
  79.         if(count==0){  
  80.             System.out.println("没有符合要求的方法!");  
  81.         }  
  82.     }  
  83. }  

运行结果:

基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值