2016-09-10 7 views
-4

私はassesmentのような運動をしています。この演習(動的配列)の実装方法は?

与えられた数字(1 + 2 +3 + 4 + 5)の数字の合計シーケンスを見つけてから結果(15)を追加する必要があります。最後の数字の合計シーケンスが数字(この場合は6)になるまでこれを繰り返します。

例:12345 + 15 + 6 = 12366;

666 + 24 + 6 = 696;

私は配列に数字を格納することを考えてきましたが、次に配列のサイズが静的であることを認識しました。今私はリンクされたリストを作ることを考えていますが、私は本当にわかりません。それはリンクされたリストを含んでいますか?

ちょうど私を正しい道に導きます。私は何を使うべきですか?

+1

を[STD ::ベクトル](http://www.cplusplus.com/reference/vector/vector/) –

+0

どのくらいあなたの番号がすることができますか? –

+0

CまたはC++?一つを選ぶ。 –

答えて

2

ここで必要な魔法はありません。ただ、整数に対する明白な計算を実行します。

int reduce(int n) 
{ 
    int result = 0; 
    while (n != 0) { result += n % 10; n /= 10; } 
    return result; 
} 

int your_problem(int n) 
{ 
    int result = n; 
    while (n >= 10) { n = reduce(n); result += n; } 
    return result; 
} 
+0

[デモ](https://ideone.com/lGc9E1)、[代替デモ](https://ideone.com/yNg03h)。 –

+0

Reduceはより良い名前を必要とするかもしれません。桁合計、桁合計、クロス合計 –

+0

@DanielJour:うん、「digit_sum」はよかっただろう。 –

関連する問題