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

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

我正在进行评估练习。

因此,给定一个数字,例如 12345,我必须找出给定数字的数字之和序列 (1 + 2 +3 + 4 +5),然后将结果 (15) 添加到其中,然后重复直到最后一个数字的和序列是一个数字(在本例中是 6)。

示例:12345 + 15 + 6 = 12366;

666 + 24 + 6 = 696;

我一直在考虑将数字存储在数组中,但后来我意识到数组的大小是静态的。现在我正在考虑制作一个链接列表,但我不太确定。是否涉及到链表?

请引导我走上正确的道路。我应该使用什么?

最佳答案

这里不需要魔法。只需对整数进行明显的计算即可:

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; 
}

关于c++ - 如何实现这个练习(动态数组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39431055/

相关文章:

c++ - 如何在 C++ 中定义自定义迭代器

c - valgrind 发现无效写入和读取的数量令人难以置信

c - 将指针传递给具有 volatile 成员的结构作为函数参数

java - 生成具有一定平均差的随机数列表

algorithm - 寻找算法:最小切割以生成二部图

c++ - Connect 4 板中的不均匀圆圈

c++ - 在 keyPressEvent 上崩溃

c - 函数返回意外值

algorithm - null 是二叉树吗?

c++ - 多个左值等价定义