给定分隔成数组元素的数字,如何在 int 中重新组合数字

Given digits separated into array elements, how can I reassemble the number in an int?

本文关键字:数字 int 新组合 组合 分隔 数组元素      更新时间:2023-10-16

好的,我想更改 int tab[4] = {1, 2, 3, 4} 的数字; 到 1234 数字,我的代码有什么问题?它显示我 1232

int main()
{
    int iloscliczb = 4;
    int tab[4] = {1, 2, 3, 4};
    int j = 10;
    int zmienna = 0;

    for( int z = 1, i = 0, k = 2; z < iloscliczb; z++, i++, k++)
    {
        zmienna = zmienna + ( tab[iloscliczb - k] *  j );
        j = pow(10, z+1);
    }
    zmienna = zmienna + ( tab[iloscliczb - 1] );
    cout << zmienna << endl;
    return 0;
}

我认为你把这复杂化了。只需从 0 开始,做 10^((n-1)-i 的幂)。这样。。。

int n = 4; // the number of elements in the arr.
int sum = 0;
for(int i = 0; i < n; i++)
    sum += (arr[i] * pow(10, (n-1)-i)); // here (n-1) = 3
std::cout << sum;
通过

数组向后工作更容易 - 也更有效,因为您可以放弃pow()调用:

int sum = 0;
for(int i = std::extent<decltype(arr)>::value; i--; )
    (sum *= 10) += arr[i];
std::cout << sum << 'n';