CT扫描题 (js版本)
var lineAdd=0;//输入行计数
var inputArr=['2','6',
"99 99 99 99 99 99",
"99 99 99 50 99 99",
"99 99 49 49 50 51",
"99 50 20 25 52 99",
"40 50 99 99 99 99",
"99 99 99 99 99 99",
'5',
"99 49 99 39 99",
"99 22 99 50 99",
"99 39 49 49 50",
"99 50 20 25 52",
"99 99 99 99 99"]; //输入两行
//模拟输入
function read_line(){
var line=inputArr[lineAdd];
lineAdd++;
return line;
}
//模拟输出
function print(x){
console.log(x);
}
(function() {
var k=parseInt(read_line());
var count=1;
var arr = new Array();
var line;
while (line = read_line()) {
arr.push(line);
}
//存储数组维数的下标
// console.log("arr:"+arr);
var numOfn = new Array();
for (var i = 0; i < arr.length; i++) {
if (arr[i].length == 1)numOfn.push(i);
}
console.log("numOfn:"+numOfn);
for (var i = 0; i < numOfn.length; i++) {
var sumArr = arr.slice(numOfn[i] + 1, numOfn[i + 1]);
// console.log("sumArr"+sumArr);
ctAnswer(sumArr, arr[numOfn[i]]);
count++;
}
function ctAnswer(arr,n) {
var x=0;
var y=0;
var newArr=new Array();
for(var i=0;i<n;i++){
var str=arr[i];
// console.log("str:"+str);
var arrtemp=new Array(n);
arrtemp=str.split(" ");
newArr[i]=new Array(n);
for(var j=0;j<n;j++){
newArr[i][j]=parseInt(arrtemp[j]);
}
}
for(var i=0;i<n;i++) {
for (var j = 0; j < n; j++) {
var temp = newArr[i][j];
if (temp <= 50) {
x++;
if (i == 0 || i == 5 || j == 0 || j == 5 || newArr[i - 1][j] > 50 || newArr[i][j - 1] > 50 || newArr[i + 1][j] > 50 || newArr[i][j + 1] > 50) {
y++;
}
}
}
}
print("Case #"+count+": "+ x+" "+y);
}
})();
最终结果: