質問するログイン新規登録

回答編集履歴

1

コード化

2017/03/18 02:46

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -1,1 +1,21 @@
1
- 負数なら一旦プラスにしてフラグを立ててから桁を合計し、フラグを見てマイナスをつければいいのでは
1
+ 負数なら一旦プラスにしてフラグを立ててから桁を合計し、フラグを見てマイナスをつければいいのでは
2
+
3
+ 正直この程度の処理で再帰を使うのは好きではないので…
4
+ ```java
5
+ public static long sumOfDigits(long n){
6
+ // nが負数か
7
+ boolean negate = n < 0;
8
+ int sum = 0;
9
+ // 負数ならマイナスをかけてプラスに変換
10
+ if (negate) {
11
+ n = -n;
12
+ }
13
+ // 桁合計
14
+ while (n > 0) {
15
+ sum = n % 10;
16
+ n /= 10;
17
+ }
18
+ // 最初が負数だったならマイナスをつけて返す、そうでないならそのまま
19
+ return negate ? -sum : sum;
20
+ }
21
+ ```