我正在制作一个类似游戏24的程序。
我需要检查用户的输入(一个使用程序提供的四个随机数的数学方程),看看用户给出的数字是否只有一个数字。
例如:
程序吐出6 4 9 5
用户可以输入9 5 6 4(等于24)。
但是我不希望他们能够做任何像95-64这样的事情(不对,只是一个例子)来制造24。
我如何检查等式中的数字是否只有一位数?
/***接受用户的数学问题。*然后...*确保输入的数学问题遵循规则并等于24。*规则:必须至少有一个乘法、除法、加法或减法符号。*输入的数字只有一个数字。*问题等于24。*@参数无*@返回真或假*如果问题遵循规则并等于24-真(玩家获胜)*如果问题不遵循规则并等于24-假(玩家失败)*如果问题不遵循规则并不等于24-假(玩家失败)*
*/public val math的问题(){扫描仪扫描=新的扫描仪(System.in);
System.out.println("");
String response = scan.nextLine();
boolean done = false;
while (!done)
{
if (response.contains("*") || response.contains("/") || response.contains("+") || response.contains("-"))
{
//If statement to check and see if numbers in response ONLY have ONE number.
}
else if (!response.contains("*") || !response.contains("/") || !response.contains("+") || !response.contains("-"))
{
done = true;
}
}
}
找出一个数字要做多少位的简单方法:
(int)数学。日志10(x)1
您也可以检查输入的数字是否大于9。
试试吧
if (("" + input).length() > 1) {
// say something about length
}
else {
// all ok
}
或者,如果它已经是一个int测试,它在0到9之间,则再次出现
因为输入似乎是一个字符串,显示了整个方程
String input = "9 + 5 + 6 + 4";
String el [] = input.split (" ");
boolean foundSymbol = false;
for (String e : el) {
assert (e.length() == 1);
if (e.equals ("+") || e.equals ("-")) //etc
foundSymbol = true;
}
检查输入的一种方法是使用正则表达式。例如:
if (!Pattern.matches("(\\s*\\d\\s*[+-*/]){3}+\\s*\\d", input)) {
...
}
该表达式只允许一位数字,并自动忽略空格并检查有效运算符(避免所有contains语句)。更好的是,您可以将捕获组添加到表达式中,以自动从输入中获取数字和运算符。
Pattern pattern = Pattern.compile("\\s*(\\d)\\s*([+-*/])\\s*(\\d)\\s*([+-*/])\\s*(\\d)\\s*([+-*/])\\s*(\\d)");
Matcher matcher = pattern.matcher(input);
while (!matcher.matches()) {
// print error and accept new input
matcher = pattern.matcher(input);
}
int result = Integer.parseInt(matcher.group(1));
for (int g = 2; g <=6; g+= 2) {
switch (matcher.group(g)) {
case '*':
result *= Integer.parseInt(matcher.group(g + 1));
break;
case '+':
result += Integer.parseInt(matcher.group(g + 1));
break;
// and so on
}
问题内容: 我正在尝试查看int是否具有相同数字的倍数。尝试不使用字符串方法或数组。我遇到的主要方法是。当重复数字位于末尾时有效,但当它们位于开始或中间时无效。 } 如果运行此命令,您将看到‘2’重复出现,但该方法仍会评估其应为的时间。 问题答案: 这是一个简短而甜蜜的版本:) 它的工作方式非常简单。是一个整数,用于存储已经遇到的数字(由于十进制系统编号只有10位,而整数给出16位,因此我们有足够
本文向大家介绍PHP程序检查数字的所有数字是否都除以它,包括了PHP程序检查数字的所有数字是否都除以它的使用技巧和注意事项,需要的朋友参考一下 要检查数字的所有数字是否在PHP中将其除,代码如下- 示例 输出结果 定义了一个名为“ divisibility_check”的函数,该函数检查数字是否不为0,以及数字是否完全除以数字的每个数字,而没有剩余任何值。定义了另一个名为“ divide_digi
我知道Sieve的算法,直到现在我一直在用它来得到高达10亿的素数。 但现在我需要知道一个10位数是素数还是不是素数,而Sieve的算法无法在时间限制内计算出来。 我搜索了很多,找到了费马的素数检验,但它没有成功,因为有些部分我不能理解,而有些部分告诉我,它只是通过一些迭代来判断它是不是可能的素数。 我想知道,在1秒左右的时间内,如何测试一个这么大的数是否为素数?最有效的解决方案/算法是什么? 编
我需要检查字符串中是否只有数字,以便将其解析为int。我不允许使用try/catch语句。thusfar,我在这里尝试过的一切都没有奏效,这就是为什么我可能已经被问到了这个问题。以下是我正在尝试的: 它是从一个文件中读取的,如果第一个输入不是整数,那么下一个输入就是整数,但是当运行时,由于某种原因,我在else语句中得到了一个不匹配的结果。
嗨,我正在尝试解决Udemy练习:编写一个名为hasSharedDigit的方法,其中包含int类型的两个参数。 每个数字应在10(含)-99(含)之间。如果其中一个数字不在范围内,则该方法应返回false。 如果两个数字中都有数字,例如12和23中的2,则该方法应返回true;否则,该方法应返回false。 我一直在得到真实,而有共享数字(9,99)我无法发现为什么.. }
首先,我是新来的。我需要问一个问题。 我想只取数字,但如果我这样写: ABC-DC-SMND“计数有效”,我如何解决这个问题? 谢谢你的关心。