Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- class NumberAsArray
- {
- public:
- int getNumberOfDigits(int number){ // взимаме броя на цифрите
- if (number == 0) // краен случей
- return 1;
- int count = 0;
- while (number != 0)
- {
- count++;
- number /= 10;
- }
- return count;
- }
- int* getArrayOutOfNumber(int number) {
- int size = this->getNumberOfDigits(number);
- int* resultArray = new int[size]; // създаваме динамичен масив с необходимия size
- if (number == 0) // краен случей
- {
- resultArray[0] = 0;
- return resultArray;
- }
- size_t index = size - 1; // понже /10 ни дава последната цифра , индексираме елементите отзад напред
- return recursionHelper(number, resultArray, index);
- }
- void printArray(int* arr, int size) { // функция, която принтира масив
- cout << "[";
- for (size_t i = 0; i < size; i++)
- cout << arr[i] << ",";
- cout << "]" << endl;
- }
- private:
- int* recursionHelper(int number,int* arr,int index)
- {
- if (number == 0)
- return arr;
- arr[index] = number % 10;
- recursionHelper(number / 10, arr, index - 1);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement