繁体   English   中英

相同的算法实现在Python和C ++中有不同的结果?

[英]Same algorithm implementation has different retults in Python and C++?

这个python代码正常工作并产生适当的输出:

def fib(x):
    v = 1
    u = 0
    for x in xrange(1,x+1):
        t = u + v
        u = v
        v = t
    return v

但是当我用C ++编写相同的代码时,它给了我一个不同的,不可能的结果。

int fib(int x)
{
    int v = 1;
    int u = 0;
    int t;
    for (int i = 1; i != x + 1; i++)
    {
        t = u + v;
        u = v;
        v = t;
    }
    return v;
}

我还在学习c ++。 谢谢!

编辑:C ++输出-1408458269。
当x = 50时,Python输出20365011074。

输入什么? Python具有无限(内存有限)大小的整数,C ++的int通常是一个四字节整数,所以你可能会有溢出。

可用带符号的32位整数类型表示的最大Fibonacci数是fib(46) = 1836311903

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM