当p<q或q≤0时,S(p, q) = 0;当p=q或q=1时,S(p, q) = 1。当p>q且q>1时
S(p,q)=S(p-1,q-1)+qS(p-1,q)
例如:S(4, 2)=S(3, 1)+2S(3, 2)=1+2(S(2, 1)+2S(2, 2)) = 7.
要实现我输入任意p,q的值,可以输出S(p,q)的值
用pascal
var x,y:longint;
function s(p,q:longint):longint;
begin
if (p<q) or (q<=0) then
s:=0
else if (p=q) or (q=1) then
s:=1
else if (p>q) and (q>1) then
s:=s(p-1,q-1)+q*s(p-1,q);
exit(s);
end;
begin
readln(x,y);
writeln(s(x,y));
end.
如果PASCAL看不懂,这里有也我写的C++代码
主要就是递归,函数嵌套,选择结构
看在我打了半天代码,希望你能采纳我,谢谢
也希望对你有帮助
能把输出结果截个图给我吗?当p=30,q=20时的结果。谢谢
追答抱歉昨晚不在
p=30,q=20时,结果很大,所以要改一下数据范围,pascal把定义的longint改为int64,即可,C++改成long long.
不懂的话追问我
你要的截图
可以加一下我的q吗 2878454304。我可以给你3倍的财富值,谢谢
追答已加,请求审核