for循环中的产品序列

时间:2014-06-22 10:01:45

标签: c++ for-loop

我知道这必须是非常愚蠢的事情,但我真的找不到我的错误。 我正在尝试编写一个程序来计算(2 / i)^ i,其中i是用户输入的整数。如果i = 0,则函数返回1。 这是我一直在使用的功能。

double f (int x)
{
    double y = 1.0;
    if (x == 0)
    return 1;
    else
    for (int i = 1; i <= x; i++)
    y *= pow (2/i, i);
    return y;
}

int main ()
{
    for(int i=0;i<=10;++i)
    cout << "f(" << i << ") =" << f(i) << endl;
}

double f (int x) { double y = 1.0; if (x == 0) return 1; else for (int i = 1; i <= x; i++) y *= pow (2/i, i); return y; } int main () { for(int i=0;i<=10;++i) cout << "f(" << i << ") =" << f(i) << endl; }

现在..这应该是一个非常简单的代码。然而,它不起作用。它编译正确,但结果不是我所期待的。经过一些迭代后,我总是得到0。我做错了什么?

1 个答案:

答案 0 :(得分:1)

整数师:

更改为:

y *= pow (2.0/i, i);
          ^^^

另外,为什么需要循环?