永发信息网

pascal 编程 问题

答案:1  悬赏:40  手机版
解决时间 2021-05-14 04:06

3. 传球游戏
(ball.pas/c/cpp)
【问题描述】
上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。
游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师在此吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。
聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。两种传球方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有三个同学1号、2号、3号,并假设小蛮为1号,球传了3次回到小蛮手里的方式有1->2->3->1和1->3->2->1,共2种。

【输入】
输入文件ball.in共一行,有两个用空格隔开的整数n,m(3<=n<=30,1<=m<=30)。
【输出】
输出文件ball.out共一行,有一个整数,表示符合题意的方法数。
【输入输出样例】
ball.in ball.out
3 3 2
【限制】
40%的数据满足:3<=n<=30,1<=m<=20
100%的数据满足:3<=n<=30,1<=m<=30
program a1;
var i,n,m,m1,s:longint;
procedure find(i,m1:longint);
begin
if m1=m then begin if i=1 then begin s:=s+1;exit;end;end
else if i+1>n then begin find(1,m1+1);find(i-1,m1+1);end
else if i-1=1 then begin if m1=m-1 then begin s:=s+1;find(i+1,m1+1);exit;end;end
else if i+1=1 then begin find(i-1,m1+1);exit;end
else if i-1<1 then begin find(i+1,m1+1);find(n,m1+1);end
else begin find(i+1,m1+1);find(i-1,m1+1);end;
end;
begin
i:=1;
m1:=0;
read(n,m);
find(i,m1);
write(s);
end.

最佳答案
program JayGuy;
var
n,m,i,j:longint;
a,b:array [1..30] of longint;
begin
readln(n,m);
fillchar(a,sizeof(a),0);
a[1]:=1;
for i:=1 to m do
begin
fillchar(b,sizeof(b),0);
for j:=1 to n do
begin
if j=1 then inc(b[j],a[n]) else inc(b[j],a[j-1]);
if j=n then inc(b[j],a[1]) else inc(b[j],a[j+1]);
end;
a:=b;
end;
writeln(a[1]);
end.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
超级QQ更换了手机绑定号码,可以付费的时候是
怎样把黑名单从列表去除
宝丰县丰乐快捷宾馆 介绍该酒店位于宝丰县迎
大家最近心情如何?
陈好 好看不?
龙之谷谁最帅?
明年如果考不上高中,应该怎么办?
我要买诺机亚的手机,可是不知道什么的好。最
是不是现在的农村改造的楼房比较便宜.
父母给女儿的生日寄语,孩子出国的祝福语
雨花区悠乐汇休闲食品哪位知道具体地址啊
包钢万腾钢铁怎么样
内心谴责是什么意思,我的内心深处受到极度谴
曾都区复工程图晒图地址在哪,我要去那里
丝路英雄金币怎样花快
推荐资讯
喜欢一个女人,我为什么会变成另一个人
在超市做不知道有没有假休
刀剑好感度跑满是多少?
CSPN昨天晚上的NBA制造最后放的是什么歌?
天心区仰天湖中建小学我想知道这个在什么地方
如何取消不必要的开机启动项?
我想这不是一个好的问题
象棋中有哪些类似 马后跑 之类的语句 是什么
描写撒谎后心虚的句子,别人一大声说话我就心
生活状态的句子,牧童一诗中诗句" "不仅让我们
现在什么防火墙比较实用比较好??
邓州市康洁干洗在哪里啊,我有事要去这里
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?