【发布时间】:2021-12-26 19:30:31
【问题描述】:
根据我对分段错误的理解,它们发生在您尝试访问程序“空间”之外的内存时。我的 IDE 说异常发生在我执行以下操作的第一个 for 循环中:pi = w + i * i; 我不明白我如何访问我不应该访问的内存。该程序应该计算 pi,直到给定数量的数字,它还没有完成。发生错误时,我正在测试到目前为止的内容。代码如下:
/// computes the continued fraction, recursivley
int w = 1;
static long double pi = 0;
long double continued_fraction(int k, int i){
for(int i = 1; i <= k; i++){
pi += w + i * i;
w += 2;
pi /= continued_fraction(k, i++);
}
return pi;
}
/// continued fraction method to compute pi, up to a limit k
long double limit_fraction(int k){
int i = 1;
/// continued fraction method
pi = 4 / continued_fraction(k, 1);
return pi;
}
【问题讨论】:
-
函数 long double continue_fraction(int k, int i){ 没有意义,因为它的参数 i 没有被使用。
-
在调试器中浏览程序,您可能会注意到
continued_fraction的返回值是0,对于k的某些值。 -
我看到
continued_fraction的不定式递归 -
@chux-ReinstateMonica 抱歉误解了你的意思。
标签: c++ recursion pi continued-fractions