三角形の辺の中点である 3 つの座標 (x y) が与えられるとします。タスクは三角形の座標を見つけることです。
例:
CSSの背景
Input : midx1 = 5 midy1 = 3 midx2 = 4 midy2 = 4 midx3 = 5 midy3 = 5 Output : x1 = 4 y1 = 2 x2 = 4 y2 = 6 x3 = 6 y3 = 4

Solution can be verified by the figure.
X 座標と Y 座標を別々に解いてみましょう。頂点の X 座標については、x とします。1×2×3。この場合、中点の X 座標は (x1+×2)/2(x2+×3)/2(x3+×1)/2。これら 3 つの式の合計が X 座標の合計に等しいことを確認します。これで、3 つの変数の合計と、それらのすべてのペアを合計するための 3 つの式があり、方程式を解くことによって座標の値を見つけます。
同様に、Y 座標についても解きます。
以下はこのアプローチの実装です。
C++// C++ program to find coordinate of the // triangle given midpoint of each side #include #define N 3 using namespace std; // Return after solving the equations and // finding the vertices coordinate. vector<int> solve(int v[]) { vector<int> res; // Finding sum of all three coordinate. int all3 = v[0] + v[1] + v[2]; // Solving the equation. res.push_back(all3 - v[1]*2); res.push_back(all3 - v[2]*2); res.push_back(all3 - v[0]*2); return res; } // Finds vertices of a triangles from given // middle vertices. void findVertex(int xmid[] int ymid[]) { // Find X coordinates of vertices. vector<int> V1 = solve(xmid); // Find Y coordinates of vertices. vector<int> V2 = solve(ymid); // Output the solution. for (int i = 0; i < 3; i++) cout << V1[i] << ' ' << V2[i] <<endl; } // Driver code int main() { int xmid[N] = { 5 4 5 }; int ymid[N] = { 3 4 5 }; findVertex(xmid ymid); return 0; }
Java import java.util.Vector; // Java program to find coordinate of the // triangle given midpoint of each side class GFG { //static final int N = 3; // Return after solving the equations and // finding the vertices coordinate. static Vector<Integer> solve(int v[]) { Vector<Integer> res = new Vector<Integer>(); // Finding sum of all three coordinate. int all3 = v[0] + v[1] + v[2]; // Solving the equation. res.add(all3 - v[1] * 2); res.add(all3 - v[2] * 2); res.add(all3 - v[0] * 2); return res; } // Finds vertices of a triangles from given // middle vertices. static void findVertex(int xmid[] int ymid[]) { // Find X coordinates of vertices. Vector<Integer> V1 = solve(xmid); // Find Y coordinates of vertices. Vector<Integer> V2 = solve(ymid); // Output the solution. for (int i = 0; i < 3; i++) { System.out.println(V1.get(i) + ' ' + V2.get(i)); } } // Driver code public static void main(String[] args) { int xmid[] = {5 4 5}; int ymid[] = {3 4 5}; findVertex(xmid ymid); } } // This code is contributed by // PrinciRaj1992
Python3 # Python3 program to find coordinate of the # triangle given midpoint of each side N = 3 # Return after solving the equations and # finding the vertices coordinate. def solve(v): res = [] # Finding sum of all three coordinate. all3 = v[0] + v[1] + v[2] # Solving the equation. res.append(all3 - v[1] * 2) res.append(all3 - v[2] * 2) res.append(all3 - v[0] * 2) return res # Finds vertices of a triangles from given # middle vertices. def findVertex(xmid ymid): # Find X coordinates of vertices. V1 = solve(xmid) # Find Y coordinates of vertices. V2 = solve(ymid) # Output the solution. for i in range(0 3): print(V1[i] end=' ') print(V2[i]) # Driver code if __name__=='__main__': xmid = [5 4 5] ymid = [3 4 5] findVertex(xmid ymid) # This code is contributed by # Sanjit_Prasad
C# // C# program to find coordinate of the // triangle given midpoint of each side using System; using System.Collections; class GFG { //static final int N = 3; // Return after solving the equations and // finding the vertices coordinate. static ArrayList solve(int []v) { ArrayList res = new ArrayList(); // Finding sum of all three coordinate. int all3 = v[0] + v[1] + v[2]; // Solving the equation. res.Add(all3 - v[1] * 2); res.Add(all3 - v[2] * 2); res.Add(all3 - v[0] * 2); return res; } // Finds vertices of a triangles from given // middle vertices. static void findVertex(int []xmid int []ymid) { // Find X coordinates of vertices. ArrayList V1 = solve(xmid); // Find Y coordinates of vertices. ArrayList V2 = solve(ymid); // Output the solution. for (int i = 0; i < 3; i++) { Console.WriteLine(V1[i] + ' ' + V2[i]); } } // Driver code public static void Main() { int []xmid = {5 4 5}; int []ymid = {3 4 5}; findVertex(xmid ymid); } } // This code is contributed by mits
PHP // PHP program to find coordinate of the // triangle given midpoint of each side $N = 3; // Return after solving the equations and // finding the vertices coordinate. function solve($v) { $res = array(); // Finding sum of all three coordinate. $all3 = $v[0] + $v[1] + $v[2]; // Solving the equation. array_push($res $all3 - $v[1] * 2); array_push($res $all3 - $v[2] * 2); array_push($res $all3 - $v[0] * 2); return $res; } // Finds vertices of a triangles from // given middle vertices. function findVertex($xmid $ymid) { // Find X coordinates of vertices. $V1 = solve($xmid); // Find Y coordinates of vertices. $V2 = solve($ymid); // Output the solution. for ($i = 0; $i < 3; $i++) print($V1[$i] . ' ' . $V2[$i] . 'n'); } // Driver code $xmid = array(5 4 5); $ymid = array(3 4 5); findVertex($xmid $ymid) // This code is contributed by mits ?> JavaScript <script> // JavaScript program to find coordinate of the // triangle given midpoint of each side // Return after solving the equations and // finding the vertices coordinate. function solve(v) { var res = []; // Finding sum of all three coordinate. var all3 = v[0] + v[1] + v[2]; // Solving the equation. res.push(all3 - v[1] * 2); res.push(all3 - v[2] * 2); res.push(all3 - v[0] * 2); return res; } // Finds vertices of a triangles from given // middle vertices. function findVertex(xmid ymid) { // Find X coordinates of vertices. var V1 = solve(xmid); // Find Y coordinates of vertices. var V2 = solve(ymid); // Output the solution. for (var i = 0; i < 3; i++) { document.write(V1[i] + ' ' + V2[i] + '
'); } } // Driver code var xmid = [5 4 5]; var ymid = [3 4 5]; findVertex(xmid ymid); </script>
出力:
トジソン・ジャワ
6 4 4 2 4 6
時間計算量: ○(1)
補助スペース : 定数スペースを使用しているため、O(1)
文字列としてのJava intクイズの作成