回答編集履歴

3

切り上げに Math.ceil を使用

2020/10/01 09:02

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  for (int i = 0; i <= n; i++)
26
26
 
27
- sum += -(int)-Math.sqrt(r*r - i*i);
27
+ sum += (int)Math.ceil(Math.sqrt(r*r - i*i));
28
28
 
29
29
  System.out.println(sum * 4);
30
30
 

2

コード修正に伴う説明の削除

2020/10/01 09:02

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -38,10 +38,6 @@
38
38
 
39
39
  ```
40
40
 
41
- sqrt で結果が整数になることはほぼ無いと考え、切り上げを常に +1 で行いました。
42
-
43
-
44
-
45
41
  実行例
46
42
 
47
43
  ```text

1

コードを修正

2020/10/01 08:57

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  for (int i = 0; i <= n; i++)
26
26
 
27
- sum += (int)Math.sqrt(r*r - i*i) + 1;
27
+ sum += -(int)-Math.sqrt(r*r - i*i);
28
28
 
29
29
  System.out.println(sum * 4);
30
30
 
@@ -57,3 +57,9 @@
57
57
  r: .
58
58
 
59
59
  ```
60
+
61
+ **追記**
62
+
63
+ r = 1.0 の場合、結果が 4 になって欲しいのにそうならないのは、
64
+
65
+ 切り上げをちゃんとしなかったからということで、コードを修正しました。