【问题标题】:Objective C- How to add digits in a number?目标C-如何在数字中添加数字?
【发布时间】:2010-10-27 11:25:57
【问题描述】:

如何在特定数字中添加数字,例如如果数字是 3234,结果应该是 3+2+3+4 = 12?

【问题讨论】:

  • 不是 iPhone 或 Objective-c 问题...只是算法

标签: objective-c algorithm digits


【解决方案1】:

应该这样做:

int val = 3234;

int sum = 0;
while (val != 0) {
    sum += (val % 10);
    val = val / 10;
}

// Now use sum.

继续添加直到得到一个数字:

int val = 3234;

int sum = val;
while (sum > 9) {
    val = sum;
    sum = 0;
    while (val != 0) {
        sum += (val % 10);
        val = val / 10;
    }
}

// Now use sum.

请注意,这两者都对原始 val 值具有破坏性。如果您想保留它,您应该制作一个副本或在函数中执行此操作,以便保留原件。

【讨论】:

  • 缺少分号和 += (val % 10);
  • 谢谢!现在如果我想迭代这个过程,直到我得到一个从 1 到 9 的数字,该怎么做。
  • 例如 3+2++3+4=12 1+2 = 3. 3 应该是结果。
  • while (len > 1) { sum=0; while (val != 0 ) { sum += (val % 10);值 = 值 / 10; } 价值=总和; temp=[NSString stringWithFormat:@"%d", sum ]; len=[温度长度]; }
  • 谢谢!我本可以如此轻松地完成这件事,而不是找到长度并编写所有代码来将 int 转换为字符串。
【解决方案2】:

希望这不是你的作业!

int sum = 0;
while (value!=0) {
  sum += value % 10;
  value = value / 10;
}

【讨论】:

  • 实际上我知道如何在 php 中执行此操作,但无法在目标 c 中执行此操作。
  • 实际上我在 php 中的算法将数字视为一个数组。像 number[0], number[1] 并使用 for each 来添加所有数字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多