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

一般に、vectorC++ では 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 に答える