-3

有没有办法拆分一个数字并将数字存储在一个 int 数组中?

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

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

1234 - 5 = 1229

有没有办法做到这一点?

4

2 回答 2

5

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

将整数转换为数组

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

通常,vector在 C++ 中,s 是首选,尤其是在这种情况下,因为您可能事先不知道位数。

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

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

于 2013-05-11T18:16:52.420 回答
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 得到零,因为这是您到达数字末尾的时候。Floor(log(input)/log(10)) + 1 是找出一个数字拥有多少位数的技巧。

于 2016-10-17T18:30:24.710 回答