JavaScript求两个数字之间所有数字的和

这是在fcc上的中级算法中的第一题,拉出来的原因并不是因为有什么好说的,而是我刚看时以为是求两个数字的和,

很显然错了。我感觉自己的文字理解能力被严重鄙视了- -。故拉出来折腾折腾。

要求:

给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。

最小的数字并非总在最前面。

思路:在正确理解要求之后,有三四种方法可以来解决这个问题;

1、就是提前给的提示Math.min()和Math.max()。

感兴趣可以看看。

Math.max():https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/max

Math.min():https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/min

 1 function sumAll(arr) {
 2   var min = Math.min(arr[0],arr[1]);
 3   var max = Math.max(arr[0],arr[1]);
 4   var sum=0;
 5   for(var i=min;i<=max;i++){
 6     num += i;
 7   }
 8   return sum;
 9 }
10 sumAll([5, 1]);

2、还是给的提示Array.reduce()。

感兴趣可以看看。

Array.reduce():https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

 1 function sumAll(arr) {
 2   var newarr = [];
 3   if(arr[0] > arr[1]){
 4     arr.sort(function(a,b){
 5       return a - b;
 6     });
 7   }
 8   for(var i = arr[0]; i <= arr[1]; i++){
 9      newarr.push(i);    
10   }
11   var sum = newarr.reduce(function(c,d){
12     return c + d;
13   });
14   return sum;
15 }
16 sumAll([5, 1]);

这个还可以变一下big。

 1 function sumAll(arr) {
 2   var sum = 0;
 3   if(arr[0] > arr[1]){
 4     arr.sort(function(a,b){
 5       return a - b;
 6     });
 7   }
 8   for(var i = arr[0]; i <= arr[1]; i++){  
 9     sum +=i;
10   }
11   return sum;
12 }
13 sumAll([5, 1]);

3、是把这个看成等差数列求和,这里用到了Math.abs()方法。

感兴趣可以看看。

Math.abs():https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/abs

1 function sumAll(arr) {
2   var a = arr[0];
3   var b = arr[1];
4   var n = Math.abs(a-b) + 1;
5   var sum = (a+b) * n  / 2;
6   return sum;
7 }
8 sumAll([5, 1]);

到这里就先结束了,毕竟方法还有很多,就不费自己脑细胞了,哈哈哈

 

ps:如有不足或错误请指出,一定及时纠正。

转载于:https://www.cnblogs.com/acejtc/p/6257440.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用以下代码来实现两个数字的加减乘除运算: ```html <!DOCTYPE html> <html> <head> <title>数字运算</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <h1>数字运算</h1> <label for="num1">输入一个数字:</label> <input type="text" id="num1"> <br> <label for="num2">输入第二个数字:</label> <input type="text" id="num2"> <br> <button id="btnAdd">加</button> <button id="btnSubtract">减</button> <button id="btnMultiply">乘</button> <button id="btnDivide">除</button> <script> $(document).ready(function() { $('#btnAdd').click(function() { var num1 = parseFloat($('#num1').val()); var num2 = parseFloat($('#num2').val()); var result = num1 + num2; alert('结果为:' + result); }); $('#btnSubtract').click(function() { var num1 = parseFloat($('#num1').val()); var num2 = parseFloat($('#num2').val()); var result = num1 - num2; alert('结果为:' + result); }); $('#btnMultiply').click(function() { var num1 = parseFloat($('#num1').val()); var num2 = parseFloat($('#num2').val()); var result = num1 * num2; alert('结果为:' + result); }); $('#btnDivide').click(function() { var num1 = parseFloat($('#num1').val()); var num2 = parseFloat($('#num2').val()); if (num2 !== 0) { var result = num1 / num2; alert('结果为:' + result); } else { alert('除数不能为0!'); } }); }); </script> </body> </html> ``` 将上述代码保存为一个 HTML 文件并在浏览器中打开,您就可以在页面中输入两个数字,然后点击相应的按钮进行加减乘除运算,最后弹出一个对话框,显示运算结果。请注意,代码中使用`parseFloat()`函数输入的值转换为浮点数,以确保正确的计算结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值