【华为机试题】请在123456789之间添加+号或者-号,也可以什么都不填,使得等式的运算结果等于a。要求程序输出等式成立的个数b。测试用例:a=5时,b=21。

本文介绍了一段使用Java实现的代码,该代码能够生成包含加减运算的数学表达式,并通过循环和字符串操作计算表达式的值。通过输入整数,代码能输出特定表达式的结果以及表达式的总数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java实现代码:

import java.util.Scanner;


public class equation {


public static void main(String[] args) {
// TODO Auto-generated method stub
// String string = "123+4+5+67-89";
Scanner console = new Scanner(System.in);
int a= console.nextInt();
int count=0;
char [] array = { ' ', '+', '-' };
char num[] = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
for (char x1 : array)
for (char x2 : array)
for (char x3 : array)
for (char x4 : array)
for (char x5 : array)
for (char x6 : array)
for (char x7 : array)
for (char x8 : array) {
int result = 0;
char s[] = { x1, x2, x3, x4, x5, x6,
x7, x8 };

String string = "";
for (int i = 0; i <= 7; i++) {
string = string + num[i] + s[i];
}

string = string + num[8];
string = string.replaceAll(" ", "");


String[] add = string.split("\\+");
int sum = 0;

for (String t : add) {
String[] sub = t.split("-");
int num1 = Integer.parseInt(sub[0]);
// 计算负数
for (int i = 1; i < sub.length; i++) {
num1 -= Integer.parseInt(sub[i]);
}
sum += num1; // 正数或负数结果 加到 总和上
}

if (sum == a) {
System.out.println(string + "=" + a);
count++;
}

}
System.out.println("个数是"+count);
}


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值