public static boolean isSumOfDigitsOdd(int n) {
if (n <= 0) {
return false;
} else if (n == 1) {
return true;
} else if (n == 2) {
return false;
} else if (n > 2) {
int temp1 = n % 10;
int temp2 = (n / 10) % 10;
int tempFinal = temp1 + temp2;
while (tempFinal > 2) {
tempFinal -= 2;
}
isDigitSumOdd((n / 100) + tempFinal);
}
}
public static boolean isDigitSumOdd(int n) {
boolean x = false;
if (n <= 0) {
x = false;
} else if (n == 1) {
x = true;
} else if (n == 2) {
x = false;
} else if (n > 2) {
int temp1 = n % 10;
int temp2 = (n / 10) % 10;
int tempFinal = temp1 + temp2;
while (tempFinal > 2) {
tempFinal -= 2;
}
return isDigitSumOdd((n / 100) + tempFinal);
}
return x;
}
在任何语言中,当返回类型是非void时,return语句都是必需的。第一个代码有2个错误:
else if
作为else
更合适return isDigitSumOdd((n/100)+tempFinal);
,否则函数将不会返回任何内容。相反,如果实际调用它,该函数将返回ISDigitsUmodd((n/100)+tempFinal);
返回的值。这是递归的关键点。现在,我不知道除了我提到的错误之外,您的代码是否正常工作,所以这里有一个更干净的解决方案。^
是一个异或运算符。
public static boolean isDigitSumOdd(int n) {
if (n == 0) return false;
return isDigitSumOdd(n/10) ^ n%2 == 1;
}
我不得不使用全局变量found来指示在哪里找到了一个和。返回语句始终未定义。 此外,如果在下面的if语句中使用return语句,代码将无法正常工作。 这不是问题的最佳解决方案,但这是我得到的工作版本。 返回语句之间的****,删除时代码工作,否则我要么得到false或未定义。我不明白这部分!为什么删除返回就能解决问题,我认为每个递归调用都必须用返回语句进行。 问题可能是由于多次呼叫造成的吗?我是不
问题内容: 我目前正在将SQL Server SQL语句转换为它们的ANSI泛型等效项,并且使用WITH语句来限制递归语句。 为了专注于此问题,我将简化如下的问题 如果我有两张桌子 报告单位 col1:密钥 col2:ParentReportingUnitKey 设施 col1:密钥 col2:ParentReportingUnitKey 此结构描述了直至设施的报告单位的层次结构,其中报告单位可以
是否可以编写如下JPQL查询: <代码>选择计数(*) 这将根据实体填充条件是否存在返回真/假布尔值? 我想这样使用查询: 我示例中的查询在语法上不正确(解析错误),但是是否有任何正确的方法可以像在JPQL中那样进行检查,从而返回布尔值,或者只有在Java代码中才有可能?
我想写返回true的Python函数一个字符串s是回文,也就是等于它的反。例如,“赛车”和“abba”是回文。到目前为止,这是我不成功的尝试。 当我告诉我的函数返回相反的结果时,我没有问题,但是,我不知道应该如何进行比较才能返回一个布尔值。 使用上面的函数会产生以下错误 现在我完全理解为什么会产生上述错误。这是因为一些递归函数返回一个boool并尝试将其添加到字符串中;但是我做不到的是如何避免这个
有人能用简单的英语解释一下这句话背后的逻辑吗? 假设mContainsLoadingRow为布尔值,如果< code>mContainsLoadingRow为< code>true, 然后返回< code > getContentDataSize()1 。 如果没有,则返回 这是正确的看待方式吗?