【问题标题】:How to implement this exercise (dynamic array)? [closed]如何实现这个练习(动态数组)? [关闭]
【发布时间】:2017-01-18 18:06:28
【问题描述】:

我正在做一个评估练习。

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

例子: 12345 + 15 + 6 = 12366;

666 + 24 + 6 = 696;

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

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

【问题讨论】:

  • 你的数字能有多大?
  • C 还是 C++?选择一个。
  • 请展示您的代码尝试,并询问它有什么问题。你的问题不清楚。
  • 666 + 18 + 9 = 693 ?

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


【解决方案1】:

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

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

【讨论】:

  • Reduce 可能需要一个更好的名称。数字总和,数字总和,交叉总和。
  • @DanielJour:是的,digit_sum 会更好。
猜你喜欢
  • 2014-03-14
  • 1970-01-01
  • 1970-01-01
  • 2011-02-22
  • 2018-04-15
  • 1970-01-01
  • 2011-12-08
  • 2014-05-01
  • 1970-01-01
相关资源
最近更新 更多