[英]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.