★★ Java の宿題ここで答えます Part 53 ★★
■ このスレッドは過去ログ倉庫に格納されています
0491デフォルトの名無しさん
2005/11/01(火) 19:09:49int index = digits.length - 1; //最下桁から計算
for (int i=0; i<valueStr.length(); i++) {
int value = valueStr.charAt(valueStr.length() - i - 1) - '0'; //最下桁の文字を0〜9の数値に変換
add(index, value);
index--;
}
}
private void add(int index, int value) {
digits[index] += value;
if (digits[index] >= 10) {
digits[index] -= 10;
add(index - 1, 1); //繰り上げを再帰で行う
}
}
public String getResult() {
StringBuffer buffer = new StringBuffer(); //最上位桁から順に送り込む
boolean foundNotZero = false;
for (int i=0; i<digits.length; i++) {
if (foundNotZero || (digits[i] != 0) || (i == digits.length - 1)) {
//0以外の物が既に現れているか、今まさに現れたか、現れなかったにせよ最下桁に至ったか、
//そのいずれかの条件が揃った時文字列バッファに追加する
buffer.append(digits[i]);
foundNotZero = true;
}
}
return buffer.toString();
}
}
■ このスレッドは過去ログ倉庫に格納されています