作业帮 > 综合 > 作业

c语言上楼梯问题打败万恶的ghost以后,将军准备回寝室告诉大伙儿这个消息,没想到杯具又发生了… 你知道有种鬼叫“路鬼”

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/05 21:44:21
c语言上楼梯问题
打败万恶的ghost以后,将军准备回寝室告诉大伙儿这个消息,没想到杯具又发生了…
你知道有种鬼叫“路鬼”吗?让人莫名其妙的迷路,将军就被这种鬼上身了.将军本来要上楼的,但是因为鬼上身,他要不就上一层楼,要不就下一层楼,这个是随机的,他不能控制自己啦!
假设将军住在第M楼,刚开始将军在K楼,因为体力原因,将军只能上或者下N次楼,假设东6宿舍共有100层.现在问当体力消耗完的时候,将军刚好回到寝室那一层有多少种走法.
例如:将军住在5楼,将军能上或者下5次楼,现在在1楼,那么将军将回不到寝室啦,为什么?
有多组测试数据,每组测试数据共一行,为M,N,K(0 < N < 21,0 < M,K <
101)的值,中间以空格分开,分别代表将军住在第几层,能移动几次和刚开始在第几层;
c语言上楼梯问题打败万恶的ghost以后,将军准备回寝室告诉大伙儿这个消息,没想到杯具又发生了… 你知道有种鬼叫“路鬼”
#include
int m;
int result = 0;
void onestep(int n,int k)
{
if (k == m && n == 0)
{
result++;
}
if (n == 0)
{
return ;
}
if (k + 1 < 101)
{
onestep(n-1,k+1);
}
if (k - 1 > 0)
{
onestep(n-1,k-1);
}
}
void main()
{
int n,k;
scanf("%d%d%d",&m,&n,&k);
if (m =101)
{
printf("数据有误");
}
onestep(n,k);
printf("%d",result);
}
再问: 抱歉啊,您的答案是错的 很明显5 5 1应该为0的
再答: 5 5 1就是0 我不知道你为什么会得不到0
再问: 噢噢,我知道了,我题上要的是多次输入,而您定义的是全局变量,再次输入就错了,那如果要是多次输入,那您的要怎么改呢,或者您能说一下您的思路吗,谢谢啊
再答: #include int result = 0; void onestep(int m,int n,int k) { if (k == m && n == 0) { result++; } if (n == 0) { return ; } if (k + 1 < 101) { onestep(m,n-1,k+1); } if (k - 1 > 0) { onestep(m,n-1,k-1); } } void main() { int m,n,k; int c; do { result = 0; printf("请依次输入将军所住楼层,可行动次数,将军现在所在楼层"); scanf("%d%d%d",&m,&n,&k); if (m =101) { printf("数据有误;请重新输入"); } onestep(m,n,k); printf("%d\n是否继续,继续请按0:",result); scanf("%d",&c); } while (c == 0); } 思路接下来回答