题目不是很难,但是帮别人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);
我们可以看到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;
}
}
}