gpt4 book ai didi

代码厨师/SPOJ : 'Marbles' Runtime Error

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:56 25 4
gpt4 key购买 nike

我在 spoj 上尝试过 Marbles pkroblem -(链接:http://www.spoj.com/problems/MARBLES/)

但是我在多次尝试后遇到运行时错误 (SIGSEGV)。

这是我提交的代码 -

#include <stdio.h>
int comb(long int n, long int k)
{

if (n==k || k==0)
return 1;
else
return (comb(n-1, k) + comb(n-1, k-1));
}

int main() {

int t;
long int n, k;
scanf("%d", &t);
while(t--)

{
scanf("%ld %ld", &n, &k);
printf("%d\n", comb(n-1, k-1));

}

return 0;
}

我不明白为什么会出现错误。网上的其他解法都是采用迭代的方式来计算nCr组合。我试过使用递归方法。任何帮助将不胜感激。

最佳答案

你在递归中递减 n 但你没有检查 n 变为 0 或负数的情况,所以 segfaul 基本上告诉你你进入了一个无限递归。

除了 n==k || 之外,只需添加一些停止条件k==0.

我没有看问题描述,所以我不知道正确的条件是什么,但也许你需要类似的东西

if (n==k || k==0 || n==0)

关于代码厨师/SPOJ : 'Marbles' Runtime Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24107178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com