今天刷了leetcode一道题:https://leetcode-cn.com/probl...要求计算1到n的和,乘除法,for,while,if,else,switch不能使用,case等关键字和条件判断语句(A?B:C)。这道题有个好办法,就是用俄罗斯农民乘法。这里虽然不能使用循环,只能手动展开,但是俄罗斯农民乘法的思路还是值得学习的。在俄罗斯农民乘法中,两个数字A和B相乘。如果两个数很大,乘积可能会溢出,那么我们可以将B进行二进制展开,枚举B的每一位,如果第i位为1,那么和A相乘的结果应该是A*(1<0){if((b&1)==1){ans+=a;}<<=1;b>>=1;}返回答案;}
