Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #define N 10
- using namespace std;
- int* createArr(int size) {
- int* arr = new int[size];
- for (int i = 0; i < size; i++)
- arr[i] = 0;
- return arr;
- }
- int* convertToArr(string s, int size) {
- int* arr = createArr(size);
- for (int i = 0; i < s.size(); i++) {
- arr[size - 1 - i] = s[s.size() - 1 - i] - '0';
- }
- return arr;
- }
- int sign(int *a) {
- return 1;
- }
- int rank_num(int *c) {
- int c_rank = 0;
- int i = 0;
- bool f = 0;
- while (!f || i < N) {
- i++;
- if (c[i] == 0)
- c_rank++;
- else
- f = 1;
- }
- return c_rank;
- }
- int compare(int *a, int *b, int q) {
- int rank_a = rank_num(a),
- rank_b = rank_num(b);
- if (q + rank_a == N - 1)
- return 0;
- if (rank_a < rank_b)
- return 1;
- else if (rank_a > rank_b)
- return -1;
- else {
- if (a[rank_a + 1 + q] > b[rank_b + 1 + q])
- return 1;
- else if (a[rank_a + 1 + q] < b[rank_b + 1 + q])
- return -1;
- else {
- return compare(a, b, q + 1);
- }
- }
- }
- void swap_t(int* a, int* b) {
- int tmp;
- for (int i = 0; i < N; i++) {
- tmp = a[i];
- a[i] = b[i];
- b[i] = tmp;
- }
- }
- int* sum(int *a, int *b) {
- int* c = createArr(N);
- for (int i = N - 1; i > 0; i--) {
- c[i] = c[i] + a[i] + b[i];
- if (c[i] > 9) {
- c[i - 1] = 1;
- c[i] -= 10;
- }
- }
- return c;
- }
- int* minus_t(int *a, int *b) {
- int* c = createArr(N);
- for (int i = N - 1; i > 0; i--) {
- c[i] = a[i] - b[i] - c[i];
- if (c[i] < 0) {
- c[i - 1] = 1;
- c[i] += 10;
- }
- }
- return c;
- }
- void printArr(int *arr, int size) {
- for (int i = 0; i < size; i++)
- cout << arr[i] << " ";
- cout << endl;
- }
- int main() {
- int *a = convertToArr("85185", N);
- int *b = convertToArr("8182", N);
- int *c = minus_t(a, b);
- printArr(a, N);
- printArr(b, N);
- swap_t(a, b);
- cout << endl;
- printArr(a, N);
- printArr(b, N);
- return 0;
- }
Add Comment
Please, Sign In to add comment