小编A E*_*Elo的帖子

在20楼爬上n楼梯的可能性

我解决了一个递归问题,其中函数int stairs(int n)返回爬楼梯到n的可能性的数量,条件是采取1步或2步.以下代码解决了这个问题:

int stairs(int n)
{
   if (n<0) return 0;
   if (n==0) return 1;
   return stairs(n-1) + stairs(n-2);
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个约束条件:如果你到了20楼,你必须使用一台自动将你带到第n层的电梯.如果由于某种原因你跳过20级(例如,达到19级然后爬2层到21级),继续照常.找出上述约束的可能性数量.到目前为止我所做的是:

int stairs20(int n)
{
    if (n<=20) return stairs(n);
    return stairs(20) + stairs(n-21);
}
Run Code Online (Sandbox Code Playgroud)

代码背后的逻辑是计算到达20楼的可能性的数量,以及21楼及以上的可能性的数量.我认为这不能找回正确的答案,并希望了解我的错误在哪里或我不算什么?

c recursion fibonacci

5
推荐指数
1
解决办法
250
查看次数

从C内存故障中删除字符串中的空格

我正在编写一个简单的代码来从C中的字符串中删除空格但是我在编译后得到以下消息:EXC_BAD_ACCESS(code = 2,adresss = ....).它来自'*temp =*str'这一行然而我不明白为什么?我该如何解决?

void removeSpaces(char * str)
{
  char * temp = str;

  while (*str != '\0') {
    if (*str != ' ') {
      *temp = *str;
      temp++;
     }
    str++;
  }
  *temp = '\0';
}
Run Code Online (Sandbox Code Playgroud)

c

1
推荐指数
1
解决办法
128
查看次数

标签 统计

c ×2

fibonacci ×1

recursion ×1