坚持将Python算法翻译成C ++

时间:2015-11-30 19:23:37

标签: python c++ algorithm syntax fibonacci

我正在尝试将我在Python中使用的Fibonacci算法转换为C ++,我的大部分工作都在工作,除非我在语法上的某个地方搞砸了。

这是我目前拥有的Python版本:

if n == 0:
    return (0, 1) *****
else:
    a, b = _fib(n // 2)
    c = a * (b * 2 - a)
    d = a * a + b * b
    if n % 2 == 0:
        return (c, d) *****
    else:
        return (d, c + d) *****

这就是我将其翻译成C ++的方式

int fib2(int n) {
 if (n == 0) {
    return (0, 1); *****
 }
 else {
    int a = fib2(n/2);
    int b = fib2(n/2);
    int c = a*(2*b-a);
    int d = a*a + b*b;
    if (n % 2 == 0) {
        return (c, d); *****
    }
    else {
        return (d, c + d); *****
    }
 }
}

我已将5颗星放在错误来自的地方。如果我理解正确,在Python版本中,它返回两个Fibonacci数字作为一对。但是,当我在C ++中尝试相同的语法时,它会说"预期的表达式"。

我理解为什么会发生这种情况,是否有人知道如何纠正我的C ++代码,以便它可以返回两个Fibonacci数的元组?

1 个答案:

答案 0 :(得分:2)

以下是使用if( T1.ID1 == null ) { ON T1.ID2 = T2.ID2 } else { ON T1.ID1 = T2.ID1 }

的结果
std::pair