编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。

public class Test5{
	public static void main(String[] args){
		/*
			编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,
			使得计算结果总是100的程序,并输出所有的可能性。
			例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。
		*/
		show();
	}
	public static void show(){
		int qian=0,hou=0;//定义运算符连接的两个数分别为qian,hou
		int ysf=0;//表示运算符
		int qh=0;//标记当前的位置,是qian还是hou  0为qian 1为hou
		int total=0;//算式结果
		int[] suan={0,0,0,0,0,0,0,0};8个可能的运算符插入位,0表没有,1表加法,2表减法
		
		for(suan[0]=0; suan[0]<3; suan[0]++)//1 2间的运算符
			for(suan[1]=0; suan[1]<3; suan[1]++)//2 3间的运算符
				for(suan[2]=0; suan[2]<3; suan[2]++)//3 4间的运算符
					for(suan[3]=0; suan[3]<3; suan[3]++)//4 5间的运算符
						for(suan[4]=0; suan[4]<3; suan[4]++)//5 6间的运算符
							for(suan[5]=0; suan[5]<3; suan[5]++)//6 7间的运算符
								for(suan[6]=0; suan[6]<3; suan[6]++)//7 8间的运算符
									for(suan[7]=0; suan[7]<3; suan[7]++){//8 9间的运算符	
										//重置
										qian=1;//第一个数
										ysf=0;
										qh=0;
										total=0;
										//开始运算
										for(int i=0;i<8;i++){
											//无运算符
											if(suan[i]==0){
												if(qh==0){
													qian=qian*10+(i+2);
												}
												else
													hou=hou*10+(i+2);
											}
											//遇到了新运算符
											else{
												//完成前一运算符的结果,结果为qian,依然取hou
												if(qh==1){
													total=qian+ysf*hou;
													qian=total;
													hou=i+2;
												}
												else{
													qh=1;
													hou=i+2;
												}
												//更新运算符
												if(suan[i]==1){
													ysf=1;
												}
												else{
													ysf=-1;
												}
											}
										}
										//完成最后一个运算
										total=qian+ysf*hou;
										//输出
										if(total==100){
											for(int i=0;i<9;i++){
												System.out.print(i+1);
											if(i<8&&suan[i]==1)
												System.out.print("+");
											if(i<8&&suan[i]==2)
												System.out.print("-");
											}
											System.out.println("="+total);
										}
									}			
		
	}
}

全部评论

相关推荐

头像
02-15 16:23
中南大学 Java
野猪不是猪🐗:签了美团真是不一样! 亲戚们都知道我签了美团,过年都围着我问送一单多少钱,还让弟弟妹妹们引以为戒,笑我爸我妈养了个🐢孩子,说从小就知道我这个人以后肯定没出息,我被骂的都快上天了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务