我有相同功能的两个版本的代码:一个迭代和一个递归。我想知道返回类型为int
的原因。它能带给你什么?为什么返回类型不能为double
?
public static int iterative(int n){
int var=1;
int var1=1;
int var2=1;
if (n<=1) {
return 1;
}
for(int i=2;i<=n;i++){
var=var1+var2+1;
var2=var1;
var1=var;
}
return var;
}
private static int recursive(int n){
if (n<=1){
return 1;
}
return rec(n-1)+rec(n-2)+1;
}
public static void main(String[] args) {
System.out.println(iter(10));
}
答案 0 :(得分:0)
您当然可以定义函数来返回double
,就像您定义它以返回String
一样。这些格式能够代表你将要返回的值,没有理由这样做。
int
表示的值。double
(和String
)在空间和计算方面都更贵。double
的{{1}}在某种程度上会产生误导。如果你愿意,可以使用1, 2, 3, ...
;它会工作得很好。但问题是“为什么?”比“为什么不呢?”。