Как я могу объединить несколько номеров в одно, например, 1,7,3 = 173? - PullRequest
0 голосов
/ 10 февраля 2020

Я думал о том, как сделать это в течение нескольких часов.

Например, давайте дадим массив неопределенной длины Arr [] = {1,2,3,4}.

(неопределенно, поскольку в нем может быть любое другое количество элементов)

Как может быть очевидно, лучший математический способ сделать это, вероятно, состоит в умножении первого элемента * 1000 , + второй элемент * 100, + третий элемент * 10, + четвертый элемент.

Таким образом, результатом будет: 1000 + 200 + 30 + 4 = 1234.

Теория довольно проста, но как вы можете реализовать это на 'for' l oop, с тем фактом, что он может иметь любое другое количество элементов, например, давайте предположим, что он может иметь 7 элементов и операцию теперь потребуется "Седьмой элемент * 100000"? Некоторое время я думал об этом, и я не могу придумать, как написать это на «для», что делает это возможным на том же самом l oop. Ребята, у вас есть предложение, как я могу это сделать?

Спасибо!

Ответы [ 3 ]

6 голосов
/ 10 февраля 2020

Предполагая, что все ваши целые числа - только одна ди git в базе 10:

int result = 0;
for (int i = 0; i < len; ++i) {
    result = result*10 + arr[i];
}
1 голос
/ 10 февраля 2020

Чтобы компилятор определил для вас размер массива:

template <typename T, size_t size>
int compute(T (&arr)[size]) {
  int result = 0;
  for (size_t i = 0; i < size; i++) {
    result = result * 10 + arr[i];
  }
  return result;
}

Попробуйте онлайн!

0 голосов
/ 10 февраля 2020
int size = sizeof(Arr) / sizeof(*Arr), p = 1, number = 0;

for(int i = size - 1; i >= 0; i--)
{
    number = number + a[i] * p;
    p *= 10;
}
cout << number;

Я думаю, вы могли бы попробовать это. Переменная size содержит формулу для определения размера массива, остальное - просто математика. Я возвращаюсь назад для l oop, потому что так работает моя формула. Надеюсь, это помогло!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...