I am writing a simple C++ program that should combine all elements of an integer array to form one number. **Eg. {4,5,6} --> should be 456**. But my output is one less than the original number. i.e instead of 456, I am getting 455. Sometimes my program works fine and sometimes not. Can someone please explain to me what is causing this unpredictible behaviour? Thank You!!

Please take a look at my code:

```
#include <bits/stdc++.h>
#include <cmath>
using namespace std;

int main()
{
    int A[5] = {4,5,6,7,8};
    int lengthA = 5;
    int num = 0;

    for(int x = 0; x < lengthA; x++)
    {

        num = A[x]*pow(10,lengthA-1-x) + num;

    }
    printf("%d\n", num ); // My O/P is 45677 

}

```