怎样让下面的代码不会无限递归:function fout=tiji(a,b,c) if nargin==1 disp(['其球体积为:',num2str(4*pi*a*a*a/3)]); elseif nargin==2 disp(['圆柱体体积:',num2str(pi*a*a*b)]); elseif nargin==3 disp(['长方体体积:',num2str(a*b*c)]); end
时间: 2023-03-29 20:04:43 浏览: 60
可以在代码中加入一个判断条件,当输入的参数不符合要求时,直接返回一个错误提示,避免无限递归。例如:
function fout=tiji(a,b,c)
if nargin<1 || nargin>3
error('输入参数个数不正确!');
end
if nargin==1
disp(['其球体积为:',num2str(4*pi*a*a*a/3)]);
elseif nargin==2
disp(['圆柱体体积:',num2str(pi*a*a*b)]);
elseif nargin==3
disp(['长方体体积:',num2str(a*b*c)]);
end
相关问题
第一题:请在指定位置编写程序,利用递归函数实现幂运算公式:a n =a a n 1 。
好的,以下是利用递归函数实现幂运算公式的程序:
```python
def power(a, n):
# 递归结束条件
if n == 0:
return 1
# 递归调用
else:
return a * power(a, n-1)
# 测试代码
print(power(2, 3)) # 输出8
print(power(5, 0)) # 输出1
```
上述程序中,`power`函数接受两个参数:底数 `a` 和指数 `n`。在函数内部,通过判断 `n` 是否为 0 来判断递归结束的条件。如果是 0,则返回 1;否则,递归调用 `power` 函数,并将指数 `n` 减 1,直到 `n` 等于 0,结束递归。
用C++写代码:使用递归函数求s = 1!+ 2!+ 3!+ … +10!。
```cpp
#include <iostream>
using namespace std;
long long factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
long long sum = 0;
for (int i = 1; i <= 10; i++) {
sum += factorial(i);
}
cout << sum << endl;
return 0;
}
```
--相关问题--:
1. 什么是递归函数?
2. 除了递归函数,还有哪些方法