使用js实现:输入包括多组测试数据.每组数据包括- -行给出2到15个两两不同且小于100的正整数.每一 -行最后- 个数是0,表示这一 -行的结束,这 个数不属于 那2到15个给定的正整数输入的最后- -行只包括一 一个整数-1,这行表示输入数据的结束,不用进行处理
时间: 2024-12-17 09:44:47 浏览: 2
在JavaScript中,你可以使用数组和循环结构来解析这样的输入并存储数据。下面是一个简单的示例函数,它会读取多组测试数据,并将它们分割成单独的数据组:
```javascript
function parseInput(inputString) {
let data = [];
let currentGroup = [];
// Split the input by newlines
const lines = inputString.split('\n');
for (let i = 0; i < lines.length; i++) {
const line = lines[i].trim();
if (line === '-1') { // End of input or a new group
if (currentGroup.length > 1) { // If there's at least one valid number in the group
data.push(currentGroup);
}
currentGroup = []; // Start a new group
} else if (line !== '') {
const numbers = line.split(' ').map(Number); // Parse the integers from the string
if (numbers.every(num => num >= 2 && num <= 100 && !data.includes(num))) { // Check validity
currentGroup = numbers;
} else {
console.log(`Invalid number ${line} on line ${i + 1}`);
}
}
}
return data;
}
// Example usage
const inputData = `5 7 9 0
12 14 0
33 44 0
-1`;
console.log(parseInput(inputData));
```
这个函数首先初始化一个空数组`data`来存储所有有效的数据组。然后遍历输入字符串的每一行,检查每个数字是否满足条件(2到15之间且未包含在其他组中)。如果遇到 `-1` 或者一行中的数字不符合规则,它会停止当前组的收集并在下一次迭代开始新的组。
阅读全文