一道让我很不开心的算法题 T^T

题目不是很难,但是帮别人debug的过程很不开心,哼~好了,开始今天的表演吧。

算法描述

在n个1到100的随机数组中找出两个数的和为随机数k,在找出第一组符合条件的数时就结束循环
例:n为9
随机数组为2 3 5 4 6 12 15 13 8
k为16
输出:3 13

首先,先生成随机数和随机数组

var n = parseInt(100 * Math.random());
var k = parseInt(100 * Math.random());
var arr = [];
for (var i = 0; i < n; i++) {
  arr.push(parseInt(100 * Math.random()))
}
console.log(n);
console.log(k);
console.log(arr);

TIM图片20180127221841.png
我们可以看到n=79;k=71;arr的长度等于n,没毛病!
接下来就可以写判断了,外层循环控制从数组的第一项开始,里层循环控制判断与数组的每一项相加和是否等于k;如果符合条件就跳出循环,打印出这两个数

outer:
  for (var i = 0; i < arr.length - 1; i++) {
    inter:
       for (var j = 0; j < arr.length - 1; j++) {
          if (arr[i] + arr[j] == k) {
            console.log(arr[i], arr[j]);
            break outer;
          }
       }
  }

TIM图片20180127222348.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值