【发布时间】:2015-10-07 16:59:35
【问题描述】:
我有一个函数可以调用自己几乎无限次,但它确实有一个结束。它计算数学公式(在 TeX 中):
当x<a:
g_{a}(x)=1
当x>=a:
g_{a}(x)=g_{a}(x-1)+g_a(x-a)
这是我的代码(c++):
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <cmath>
using namespace std;
double g( double a, double x){
if (x>=a) return (g(a,x-1)+g(a,x-a));
else if (x<a) return 1;
return 0;
}
int main(){cout << g(sqrt(10000019),10000019);}
我用g(sqrt(10000019),10000019);调用函数
如何停止 SEGFAULT?
【问题讨论】:
-
你得到 SEGFAULT 的 a 和 x 的值是多少?
-
另外,你不能发一个MCVE吗?
-
顺便说一句,它是 Ackermann_function,我说的对吗?如果是,那么我怀疑你可以停止 SEGFAULT。
-
@Adel 编辑调用
-
@Fabio 这不是 MCVE 吗?