我在geeksforgeeks门户网站的练习中遇到一些问题。我不知道他们为什么对我说错答案。我已经完成了该功能,并且在可见测试用例上的结果也不错。也许我不明白他们要我解决什么问题?你能帮我吗?
我的代码是这样的:
//Your Code here
long answer = 0;
for (int i = 0; i < str.length(); i++)
{
long multiply = (str.charAt(i) - 48) * answer;
long sum = (str.charAt(i) - 48) + answer;
if (multiply > sum)
answer = multiply;
else if (sum > multiply)
answer = sum;
}
System.out.println(answer);
重要!!!他们没有显示代码失败的输入测试用例。他们没有显示测试用例的任何输入。
编辑: 显示一些自定义输入的请求(也稍微改变了if else语句...现在包括等于和与乘法的可能性
答案 0 :(得分:0)
由于以下if-else语句,您的代码包含一个小错误:
if (multiply > sum)
answer = multiply;
else if (sum > multiply)
answer = sum;
和等于乘时,您忘记了条件。在这种情况下,您的答案变量将在该迭代中保持不变,最终您将得到错误的答案。
现在,对于“ 22”的测试用例,可能会出现总和==乘积->您的代码给出的答案为2,而答案应该为4。
这可能是代码失败的测试用例之一。