我需要为我的方法打印我的最终答案。但是,它显示了整个计算到最后!我怎样才能消除只得到结果的过程?
问问题
736 次
5 回答
1
相反,从另一个调用你的方法,只打印最终值:
System.out.println(getFactorial(5));
如果您真的需要从方法内部执行此操作,您可以创建一种“蹦床”方法,如下所示:
private static int getFactorial(int userInput) {
int fact = _getFactorial(userInput);
System.out.println(fact);
return fact;
}
private static int _getFactorial(int userInput) {
// real implementation
}
于 2012-10-18T04:12:48.820 回答
0
// Calculate the factorial value
private static int getFactorial(int userInput){
int ans = userInput;
if(userInput >1 ){
ans*= (getFactorial(userInput-1));
}
return ans;
}
并在函数外打印
System.out.println("The value of "+ b +"! is "+ getFactorial(b));
只打印一次,当您得到最终答案时。
于 2012-10-18T04:14:46.530 回答
0
这是一个递归函数调用,它在所有情况下执行,无需特殊条件检查。从另一种方法打印是一个不错的选择。
private static int getFactorial(int userInput){
int ans = userInput;
if(userInput >1 ){
ans*= (getFactorial(userInput-1));
}
return ans;
}
// New method;
private static void printFactorial(int userInput){
System.out.println("The value of " + userInput + "! is " + getFactorial(userInput));
}
于 2012-10-18T04:16:47.353 回答
0
由于您不喜欢只返回一个值并从调用者代码打印的想法,您可以添加一个“打印答案”标志作为参数:
// Calculate the factorial value
private static int getFactorial(int value, boolean print){
if (value > 1) {
value *= getFactorial(value-1, false);
if (print) {
System.out.println("The value of "+ b +"! is "+ value);
}
}
return value;
}
不过,就我个人而言,我更喜欢Jake King 回答的“蹦床方法” 。
于 2012-10-18T04:19:49.200 回答
0
// Calculate the factorial value
private static int getFactorial(int userInput){
int ans = userInput;
if(userInput >1 ){
ans*= (getFactorial(userInput-1));
//System.out.println("The value of "+ b +"! is "+ ans);
}
return ans;
}
public static void main(String[] args)
{
int ans;
//get input
ans = getFactorial(input);
System.out.println("The value of "+ b +"! is "+ ans);
}
于 2012-10-18T04:28:57.557 回答