C - 递归计数器

C++ - Recursive counter

本文关键字:计数器 递归      更新时间:2023-10-16

我正在尝试创建一个计数器。它计算每个操作,例如乘法,加法,减法,除法。每次我尝试cout柜台时,它都保持为零。

任何人都可以阐明我做错了什么吗?

我的大部分代码缺少,因此我可以保护它免受其他同学的侵害,但是我列出了该部分的代码中有多少次操作。

long karatsuba(int num1, int num2, int &counter)
{
 if (num1 < 10 || num2 < 10)
 {
    counter++ // 1 operation
    return num1 * num2;
 }
 /* calculates the size of the number */
 ... 4 operations
 /* split the digit sequences about the middle */
 ... 4 operations
 /* 3 calls made to numbers approximately half the size */
 int z0 = karatsuba(..., ..., counter);
 int z1 = karatsuba(..., ..., counter);
 int z2 = karatsuba(..., ..., counter);

 return ... // 9 operations
}
-------------------------------------------------------------
int main()
{
 int counter = 0;
 cout << karatsuba(123, 456, counter) << " " << counter << endl;
 cout << endl;
 system("Pause");
 return 0;
}

问题是该行:

cout << karatsuba(123, 456, counter) << " " << counter << endl;

试试 cout << karatsuba(123, 456, counter); cout << " " << counter << endl;

问题是cout,打印时计数仍然0。