如何实现这个练习(动态数组)?

时间:2016-09-10 22:12:49

标签: c++ c algorithm data-structures linked-list

我喜欢评估练习。

所以给定一个数字,例如12345,我必须找出给定数字(1 + 2 + 3 + 4 +5)的数字的总和序列,然后将结果(15)加到其上,然后重复这直到最后一个数字的总和序列是一个数字(在这种情况下是6)。

示例: 12345 + 15 + 6 = 12366;

666 + 24 + 6 = 696;

我认为将数字存储在数组中,但后来我意识到数组的大小是静态的。现在我想要制作链表,但我不太确定。它是否涉及链接列表?

引导我走正确的道路。我该怎么用?

1 个答案:

答案 0 :(得分: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; 
}