分割一个数字并存储在int数组中

splitting a number and storing in int array

本文关键字:存储 int 数组 数字 一个 分割      更新时间:2023-10-16

是否有一种方法来分割一个数字,并在一个int数组中存储数字?

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

例如,如果我有一个号码12345,我需要执行以下操作:

1234 - 5 = 1229

有办法做到这一点吗?

使用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;
}

一般来说,在c++中首选vector 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来反转它

我将用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是一个计算一个数有多少位的小技巧。

相关文章: