【发布时间】:2018-05-20 22:57:11
【问题描述】:
我正在尝试创建一个计数器。它计算每个操作,例如乘法,加法,减法,除法。每次我尝试计算计数器时,它都保持为零。
谁能解释我做错了什么?
我的大部分代码丢失了,所以我可以保护它免受其他同学的影响,但是我已经列出了代码所在的部分中有多少操作。
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;
}
【问题讨论】:
-
请发布实际的、可编译的代码。上面的代码有语法错误。特别是,
counter声明在哪里? -
如果你的大部分代码可以被删除并且仍然产生你描述的问题状态,那么你远远会更好发布 that 作为一个完整的问题源,而不是发布不可编译的猜想。如果您在减少代码的同时发现了实际问题,请不要感到惊讶;它发生的频率比你想象的要多。
-
不需要我删除的代码,因为它工作正常。我完成了那部分作业。只需实现计数器来计算每个不起作用的操作。