回答編集履歴

1

クラスの追加

2020/07/15 02:24

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -45,3 +45,87 @@
45
45
  }
46
46
 
47
47
  ```
48
+
49
+ **追記**
50
+
51
+ 解決済みにしたのなら、どのようにして解決したのかコードを書いてほしい
52
+
53
+ と思います。後から質問を検索してみる人のためにも。
54
+
55
+ ```C++
56
+
57
+ #include <iostream> // cout, endl, boolalpha
58
+
59
+ #include <fstream> // ifstream
60
+
61
+ #include <cmath> // hypot
62
+
63
+ using namespace std;
64
+
65
+
66
+
67
+ class Vector {
68
+
69
+ double x, y;
70
+
71
+ public:
72
+
73
+ Vector(double x = 0, double y = 0) { this->x = x; this->y = y; }
74
+
75
+ Vector(const Vector& v) { x = v.x; y = v.y; } // copy constructor
76
+
77
+
78
+
79
+ Vector operator+(const Vector& v) { return Vector(x + v.x, y + v.y); }
80
+
81
+ Vector operator-(const Vector& v) { return Vector(x - v.x, y - v.y); }
82
+
83
+
84
+
85
+ double len(const Vector& v) {
86
+
87
+ Vector p = *this - v; // operator- を使用
88
+
89
+ return hypot(p.x, p.y); // 直角三角形の斜辺 c = hypot(a, b)
90
+
91
+ }
92
+
93
+ };
94
+
95
+
96
+
97
+ int main()
98
+
99
+ {
100
+
101
+ ifstream ifs("9th.in"); // input file stream
102
+
103
+ if (!ifs) return 1;
104
+
105
+
106
+
107
+ double x, y, r;
108
+
109
+ int n;
110
+
111
+ ifs >> x >> y >> r >> n;
112
+
113
+ Vector v0(x, y);
114
+
115
+
116
+
117
+ cout << boolalpha;
118
+
119
+ for (int i = 0; i < n; i++) {
120
+
121
+ ifs >> x >> y;
122
+
123
+ Vector v(x, y);
124
+
125
+ cout << (v0.len(v) < r) << endl;
126
+
127
+ }
128
+
129
+ }
130
+
131
+ ```