用编程语言编程实现一个数学问题,并输出结果。

当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... 当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)的值
展开
 我来答
UNIkeEN
2016-08-17 · TA获得超过834个赞
知道小有建树答主
回答量:200
采纳率:100%
帮助的人:47.6万
展开全部

用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.

不懂的话追问我

你要的截图

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式