请解释一下此段程序中solve的函数过程中的for语句里面的solve函数怎么理解?(看得懂Pascal或VB的都可以)

Pascal:varn,m:integer;functionsolve(n,m:integer):integer;vari,sum:integer;beginifm=1t... Pascal:

var n,m:integer;
function solve(n,m:integer):integer;
var i,sum:integer;
begin
if m=1 then
begin
solve:=1;
exit;
end;
sum:=0;
for i:=1 to n-1 do
sum:=sum+solve(i,m-1);
solve:=sum;
end;

begin
readln(n,m);
writeln(solve(n,m));
end.

Visual Basic:

Dim n As Integer, m As Integer, x As Variant

Private Function solve(n As Integer, m As Integer) As Integer
Dim i As Integer, sum As Integer
If m = 1 Then
solve = 1
Exit Function
End If
sum = 0
For i = 1 To n - 1
sum = sum + solve(i, m - 1)
Next i
solve = sum
End Function

Private Sub Form_Load()
n = InputBox("Please input n")
m = InputBox("Please input m")
Text1.Text = solve(n, m)
End Sub
展开
 我来答
槿叶耶
2011-11-01
知道答主
回答量:35
采纳率:0%
帮助的人:8.1万
展开全部
这应该是一道提高组初赛题的一部分,
是一个调,一个特殊的调用,pascal上叫递归,就是自己调用自己。就是上面sum = sum + solve(i, m - 1)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Arikcs
2011-10-24 · 超过11用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:13.3万
展开全部
这里用了递归,参加初赛的人应该都知道
所谓递归,就是自己调用自己,比如函数
当函数中出现跟自己名字相同的函数就再次使用自己
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xxzjzyzj
2011-10-25 · 超过36用户采纳过TA的回答
知道答主
回答量:134
采纳率:0%
帮助的人:117万
展开全部
这里貌似是无限递归,知道M=0为止
而且这应该是再N>=M的时候才会有数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式