面试
- 问题描述:设计程序实现类人求解的乘法结合律
- 输入:一个结构化的表达式(树形结构)
比如:$$-3\times(1-0.6)\times7\times 0.8 $$
*[
*[-1, 3]
+[
1, *[-1, 0.6]
],
7,
0.8
]
- 已知:一系列用于数的运算方法,如下:
完全平方公式:$$(1+2)^2=1^2+2\times 1\times 2+2^2 $$
去括号法则:$$2 \times (4-1)=2 \times 4 - 2 \times 1 $$
去括号法则:$$-(2-1)=-2+1 $$
小数化分数:$$0.6=\frac{3}{5}$$
约分:$$\frac{3}{6}=\frac{1}{2}$$
根式乘根式:$$\sqrt{2}\times \sqrt{3}=\sqrt{6}$$
根式化整数:$$\sqrt{4}=2$$
同底数幂相乘:$$2^3\times 2^2 = 2^5 $$
幂的运算:$$2^2=4$$
整数相乘:$$1\times 2 = 2 $$
通分:$$1+\frac{1}{2}=\frac{3}{2}$$
……
- 输出:类人求解的过程
case:
-
$$-3\times(0.6)\times7\times 0.8 $$
$$=-3\times \frac{3}{5}\times 7\times \frac{4}{5}$$
$$= -\frac{3\times3\times7\times4}{5\times5} $$
$$=-\frac{252}{1\times5\times1\times5}$$
$$=-\frac{252}{25}$$
-
$$-6\times\sqrt2\times(-3\sqrt2)\times6$$
$$=6 \times\sqrt{2}\times 3\sqrt{2}\times 6 $$
$$=108\times\sqrt2\times\sqrt2$$
$$=108\times2 $$
$$=216$$
求$$n^m$$:
using ll=long long ;
ll quick(ll n,ll m){
ll ans=1;
while(m){
if(m&1)ans*=a;
a*=a;
m>>=1;
}
return ans;
}