我可以在不使用乘法运算符“”的情况下进行乘法运算吗*"在JavaScript中
Can I perform multiplication without using the multiplication operator "*" in JavaScript
我需要在JavaScript中对两个数字进行乘法运算,但不需要使用乘法运算符"*"。有可能吗?
function a(b,c){
return b*c;
} // note:need to do this without the "*" operator
是。因为乘法只是多次加法还为方法提供有意义的签名,而不是使用单个字母。
function multiply(num, times){
// TODO what if times is zero
// TODO what if times is negative
var n = num;
for(var i = 1; i < times; i++)
num += n; // increments itself
return num;
}
a=(b,c)=>Math.round(b/(1/c))
您需要能够处理负数和零。以上其他答案在这里没有帮助。有不同的方式。一种相对混乱的方式可能是如果:
function multiply(num1, num2) {
var sum = 0;
for (var i = 0; i < Math.abs(num2); i++) {
sum += num1;
}
if (num1 < 0 && num2 < 0) {
return Math.abs(sum);
} else if (num1 < 0 || num2 < 0 ) {
return -sum;
} else {
return sum;
}
}
还有另一种更简单的数学方法。让我们在C++中这样做:
double mult(double a, double b) {
return exp(log(a) + log(b));
}
C++中的log()
函数返回参数中传递的参数的自然对数(以e为底的对数)。(参数可以是任何数字类型)
C++中的exp()
函数返回给定参数的指数(欧拉数)e(或2.71828
)。
当你简化上面的语句时,你最终得到了a * b
,但仍然没有*
符号
*你需要确保a
和b
都是阳性的,否则你会得到nan
:(
以下是的数学技巧
function multiply(num1, num2) {
return num1/(1/num2);
}
console.log(multiply(5,22))
我认为这可以使用递归来解决。抱歉有不正确的缩进。我们得到了2个数字来相乘,m与n相乘只意味着m,n次相加。
如果n变为0,则返回0。这是我们的基本情况。其他的返回m+多(m,n-1)
我们每次都返回m,因为我们需要将m加n次在每次调用中,我们都会减小n的值,因此当n变为1时,我们将最后一次调用它。
function multi (int m, int n){
if(n === 0)
return 0;
return m + multi(m,n-1);
}
repeat()方法可以用来求两个数字的乘积。
var a = 3;
var b = 4;
var res = "1".repeat(a).repeat(b).length;
console.log(res)
log: 12
它正在重复c,a times=>'ccc',然后整个字符串b次=>'cccccccccc’,最后一个字符串的长度将是a*b;
这类似于循环方法。这种方法仅限于正数和整数。
function multiply(num1, num2) {
let num = 0;
// Check whether one or both nums are negative
let flag = false;
if(num1 < 0 && num2 < 0){
flag = true;
// Make both positive numbers
num1 = Math.abs(num1);
num2 = Math.abs(num2);
}else if(num1 < 0 || num2 < 0){
flag = false;
// Make the negative number positive & keep in num2
if(num1 < 0){
temp = num2;
num2 = Math.abs(num1);
num1 = temp;
}else{
num2 = Math.abs(num2);
}
}else{
flag = true;
}
let product = 0;
while(num < num2){
product += num1;
num += 1;
}
// Condition satisfy only when 1 num is negative
if(!flag){
return -product;
}
return product;
}
console.log(multiply(-2,-2));
function multiple(a, b) {
let sum = 0;
for (let i = 0; i < Math.abs(b); i++) {
sum += Math.abs(a);
}
if (a < 0 && b < 0) {
return Math.abs(sum);
} else if (a < 0 || b < 0 ) {
return -sum;
} else {
return sum;
}
}
这是来自某个编程难题还是面试问题?:)
由于乘法是重复加法,您可能需要一个循环,将其中一个因子添加到另一个因子中每个计数的结果中。
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何提取“;href"最近列表项中的属性值
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 我可以在不使用乘法运算符“”的情况下进行乘法运算吗*"在JavaScript中