拆分数字并存储在int数组中

时间:2013-05-11 18:15:06

标签: c++

有没有办法在int数组中拆分数字和存储数字?

我正在寻找一种从数字中删除一些数字的方法(对于可分割的算法证明)。

例如,如果我有一个数字12345,我需要执行此操作:

1234 - 5 = 1229

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:3)

使用n % 10获取最后一位数字,n / 10获取其他数字。例如,5 = 12345%10,1234 = 12345 / 10.

Convert integer to array

int array[6];
int n = 123456;
for (int i = 5; i >= 0; i--) {
    array[i] = n % 10;
    n /= 10;
}

一般来说,{C}首选vector是首选,尤其是在这种情况下,因为您可能事先并不知道数字位数。

int n = 123456;
vector<int> v;
for(; n; n/=10)
  v.push_back( n%10 );

然后v包含{6,5,4,3,2,1}。您可以选择使用std::reverse来反转它。

答案 1 :(得分:0)

我将以sudo代码给你答案。

int [] makeArrayFromInt (int input){
    arr = new int [floor(log(input)/log(10)) + 1]
    int index = 0
    while(input>0){
        arr[index]=input%10
        input=input/10
        index++
    }
    return arr
}

基本思想是使用mod 10获取特定数字位置的值并除以10以得到下一个数字。重复此过程,直到除以10得到零,因为这是你到达数字的末尾。楼层(日志(输入)/日志(10))+ 1是一个技巧,可以找出一个数字拥有多少位数。