【问题标题】:Separating Digits in Int into Separate Ints [duplicate]将 Int 中的数字分隔成单独的 Int [重复]
【发布时间】:2018-09-18 07:15:06
【问题描述】:

理想情况下,我想取一个 int of say... 13647 并像这样拆分它:

第一个新变量 (int) 是第一个数字。 第二个是前两位数。 第三个是前三位数字... 等等等等。

我无法弄清楚如何在保持高效运行时的同时做到这一点。感谢您的帮助!

【问题讨论】:

  • @lubgr 据我了解,OP 想要 13647 -> 1、13、136、1364、13647,骗子没有完全回答
  • ...嗯,实际上这比骗子要求的要容易,所以也许骗子没问题
  • 拿笔和纸,需要进行哪些操作才能从13647得到13?
  • 是的,一旦我弄清楚了公式以及如何取模它就更有意义了。你是对的,那实际上更容易。感谢您的帮助

标签: c++ performance int runtime digits


【解决方案1】:

您可以尝试以下方法:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>

int main()
{
    int i = 0;
    int num = 13647;
    char inArr[20];
    itoa(num, inArr, 10);
    int numArr[strlen(inArr)];

    for(i = 0; i < strlen(inArr); i++) {
        numArr[i] = num/pow(10, strlen(inArr) - i - 1);
        printf("num[%d] = %d\n", i, numArr[i]); 
    }
    return 0;
}

输出将是:

num[0] = 1
num[1] = 13
num[2] = 136
num[3] = 1364
num[4] = 13647

【讨论】:

  • 哇,谢谢你,这绝对是我想要的。我必须对派生的数字进行很多操作,但我并不担心执行这些操作所需的代码,所以这非常有帮助!
猜你喜欢
  • 1970-01-01
  • 2011-07-08
  • 2011-02-26
  • 1970-01-01
  • 2014-10-10
  • 1970-01-01
  • 2014-08-22
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多