【问题标题】:How to split up integers [closed]如何拆分整数[关闭]
【发布时间】:2013-10-10 03:36:40
【问题描述】:

在我正在处理的程序中,我有 9 位整数,范围如下:111111111 - 999999999。

我需要查看三个案例。一方面,我需要设置一个等于数字的最后 3 位的整数,接下来我必须设置 int = 中间 3 位,然后我必须设置 int = 前 3 位。

我该怎么做呢?我不知道如何在数字之间没有空格或类似的东西的情况下使用它。

【问题讨论】:

  • 您希望我们为您完成工作?或者您已经有一个大纲或一些基本代码可以展示给我们?
  • 您可以使用模运算符和除以 10 来获取单个数字,但是如果您要大量使用这些类型的操作,我建议创建一个自定义 Integer 类,其中包含每个 3-单独的数字部分,可以很容易地重建它,例如通过123456789 = 123 * 10^6 + 456 * 10^3 + 789。至少这对我来说更有意义。
  • 虽然您提到了“空格”,但这意味着它可以是一个字符串。那么,你知道有办法获取子字符串吗?

标签: c++ integer


【解决方案1】:

您需要展示您尝试的工作,但是这个使用除法和模数相当简单(除法的余数 - 所以1234 % 100 将是34):

int num = 123456789;
int last = num%1000;// last = 789
int tmp = num/1000; // tmp = 123456
int mid = tmp%1000; // mid = 456
int first = tmp/1000; // first = 123

【讨论】:

    【解决方案2】:

    如果您的数字是字符串,那么您应该查看std::string 操纵器。特别是substr 应该适合您的需求。

    如果您的号码是 int,那么我建议您查看模运算符 (%)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-06
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      相关资源
      最近更新 更多