如何借助函数(a,b)计算24a+36b,在函数实现中做a+b
How to calculate 24a+36b with the help of funct(a,b) given which do a+b in function implementation?
我有一个查询,
我已经实现了函数func(a,b),它返回a+b的结果,现在我想用对函数的最小调用次数来计算24a+36b
感谢的回复
没有其他运算符或任何移位器可用,只有此函数可用
// do the 12*(2*a + 3*b) as per Thomas Matthews comment
ab = func(a,b);
a2b2 = func(ab,ab);
a2b3 = func(a2b2,b);
k2_a2b3 = func(a2b3,a2b3);
k4_a2b3 = func(k2_a2b3,k2_a2b3);
k8_a2b3 = func(k4_a2b3,k4_a2b3);
r = func(k8_a2b3,k4_a2b3);
如果不能将中间结果存储到其他变量中,则替换的结果应该非常接近最优,尽管出于某种原因,我不能确定它是否是最优。(正如我不能100%确定这是有变量的最佳解决方案一样,只有99%确定)
只是为了好玩,被取代的func
被称为59次:
return func),b),func,func(func(a,b)、func(func(a(b))、b)、b;
如果要将24乘以a和36乘以b相加,可以在调用函数时直接进行乘法运算。所以你可以写:
func(24*a, 36*b);
相关文章:
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 分段 排序函数实现中的错误
- 无法去函数实现 vim
- C++ 20 中的运算符 == 和 <=> 应该作为成员还是自由函数实现?
- 为什么在这种情况下不调用我的虚拟函数实现?
- 我能否通过将函数实现为类对象方法来避免使用互斥锁
- 嵌套的模板结构构造函数实现
- C++接口的工厂函数实现
- 链表中的递归长度函数实现
- 我可以期望某些 STL 函数实现是可自动矢量化的吗?
- 如何将深拷贝构造函数实现到链表中?
- 虚拟 CTOR 的克隆函数实现是否有问题
- 没有捕获列表的 lambda 通常作为普通函数实现吗?
- C++二叉树打印函数实现
- C++:默认构造函数实现
- C++派生类中的纯虚函数实现
- 决定放置函数实现的位置
- 强制实施纯虚函数实现,可能使用不同的参数类型
- 如何让成员函数实现依赖于类的模板参数?
- 我们如何将Ostream函数作为类的成员函数实现,而不是作为朋友函数,以便我可以用作虚拟函数