查找具有给定笛卡尔坐标的矩形面积的函数
Function to find area of a rectangle with given cartesian coordinates
让函数 RectangleArea(strArr) 获取存储在 strArr 中的字符串数组,它只包含 4 个元素并且采用 (x y) 形式,其中 x 和 y 都是整数,return由笛卡尔网格上的 4 个点形成的矩形区域。这 4 个元素将按任意顺序排列。例如:如果 strArr 是 ["(0 0)", "(3 0)", "(0 2)", "(3 2)"] 那么你的程序应该 return 6 因为长方形是3高是2长方形的面积等于宽*高.
例如-
Input: ["(1 1)","(1 3)","(3 1)","(3 3)"]
Output: 4
Input: ["(0 0)","(1 0)","(1 1)","(0 1)"]
Output: 1
如果您输入正确的矩形坐标集,以下函数将起作用
function distance(coord1, coord2) {
console.log(coord1, coord2);
return Math.sqrt(Math.pow(coord1[0] - coord2[0], 2) + Math.pow(coord1[1] - coord2[1], 2));
}
function RectangleArea (strArr) {
if (strArr.length < 4) {
throw new Error("invalid array passed");
}
const numArr = strArr.map(coord => coord.match(/\d/g));
const width = distance(numArr[0], numArr[1]);
const height = distance(numArr[1], numArr[2]);
console.log(width, height);
return width * height;
}
Java 解法:
public int product(String[] strArr){
int firstValue = Integer.parseInt(String.valueOf(strArr[0].charAt(1)));
int secondValue = Integer.parseInt(String.valueOf(strArr[0].charAt(3)));
int height = 0;
int width= 0;
for(int i=1; i<strArr.length;i++){
if(Integer.parseInt(String.valueOf(strArr[i].charAt(1)))==firstValue){
height = secondValue - Integer.parseInt(String.valueOf(strArr[i].charAt(3)));
}
if(Integer.parseInt(String.valueOf(strArr[i].charAt(3)))==secondValue){
width = firstValue - Integer.parseInt(String.valueOf(strArr[i].charAt(1)));
}
}
return Math.abs(height*width);
}
//c++ code
#include <bits/stdc++.h>
using namespace std;
int product(vector<string>arr){
int fistvalue= arr[0][1]-'0';
int secondvalue=arr[0][3]-'0';
int height=0;
int width=0;
for(int i=1;i<arr.size();i++){
if(arr[i][1]-'0'==fistvalue){
height=secondvalue-(arr[i][3]-'0');
}
if(arr[i][3]-'0'==secondvalue){
width=fistvalue-(arr[i][1]-'0');
}
}
return abs((height*width));
}
int main(){
cout<<product({"(0 0)", "(3 0)", "(0 2)", "(3 2)"});
return 0;}
让函数 RectangleArea(strArr) 获取存储在 strArr 中的字符串数组,它只包含 4 个元素并且采用 (x y) 形式,其中 x 和 y 都是整数,return由笛卡尔网格上的 4 个点形成的矩形区域。这 4 个元素将按任意顺序排列。例如:如果 strArr 是 ["(0 0)", "(3 0)", "(0 2)", "(3 2)"] 那么你的程序应该 return 6 因为长方形是3高是2长方形的面积等于宽*高.
例如-
Input: ["(1 1)","(1 3)","(3 1)","(3 3)"]
Output: 4
Input: ["(0 0)","(1 0)","(1 1)","(0 1)"]
Output: 1
如果您输入正确的矩形坐标集,以下函数将起作用
function distance(coord1, coord2) {
console.log(coord1, coord2);
return Math.sqrt(Math.pow(coord1[0] - coord2[0], 2) + Math.pow(coord1[1] - coord2[1], 2));
}
function RectangleArea (strArr) {
if (strArr.length < 4) {
throw new Error("invalid array passed");
}
const numArr = strArr.map(coord => coord.match(/\d/g));
const width = distance(numArr[0], numArr[1]);
const height = distance(numArr[1], numArr[2]);
console.log(width, height);
return width * height;
}
Java 解法:
public int product(String[] strArr){
int firstValue = Integer.parseInt(String.valueOf(strArr[0].charAt(1)));
int secondValue = Integer.parseInt(String.valueOf(strArr[0].charAt(3)));
int height = 0;
int width= 0;
for(int i=1; i<strArr.length;i++){
if(Integer.parseInt(String.valueOf(strArr[i].charAt(1)))==firstValue){
height = secondValue - Integer.parseInt(String.valueOf(strArr[i].charAt(3)));
}
if(Integer.parseInt(String.valueOf(strArr[i].charAt(3)))==secondValue){
width = firstValue - Integer.parseInt(String.valueOf(strArr[i].charAt(1)));
}
}
return Math.abs(height*width);
}
//c++ code
#include <bits/stdc++.h>
using namespace std;
int product(vector<string>arr){
int fistvalue= arr[0][1]-'0';
int secondvalue=arr[0][3]-'0';
int height=0;
int width=0;
for(int i=1;i<arr.size();i++){
if(arr[i][1]-'0'==fistvalue){
height=secondvalue-(arr[i][3]-'0');
}
if(arr[i][3]-'0'==secondvalue){
width=fistvalue-(arr[i][1]-'0');
}
}
return abs((height*width));
}
int main(){
cout<<product({"(0 0)", "(3 0)", "(0 2)", "(3 2)"});
return 0;}