Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8. #include <string>
  9. #include <cstring>
  10. #include "stdio.h"
  11. using namespace std;
  12.  
  13. char* sum(char *A, char *B, int dlin) {
  14.     char *sum = new char[dlin];
  15.     for (int i = dlin - 1; i >= 0; i--) {
  16.         if (A[i] == '0' && B[i] == '0') {
  17.  
  18.         }
  19.         if ((A[i] == '0' && B[i] == '1') || (A[i] == '1' && B[i] == '0')) {
  20.  
  21.         }
  22.         if (A[i] == '1' && B[i] == '1') {
  23.             if (A[i - 1] == '2') {
  24.  
  25.             }
  26.         }
  27.     }
  28.     return sum;
  29. }
  30.  
  31. int main() {
  32.     SetConsoleOutputCP(1251);
  33.     string l1, l2, sum;
  34.     cout << "Введите два двоичных числа  в естественной форме:" << endl;
  35.     getline(cin, l1);
  36.     getline(cin, l2);
  37.  
  38.     int dl1 = l1.length();
  39.     int dl2 = l2.length();
  40.     int dif;
  41.     dif = dl1 - dl2;
  42.     if (dif > 0) {
  43.         while (dif > 0) {
  44.             l2 = '0' + l2;
  45.             dif--;
  46.         }
  47.     }
  48.     if (dif < 0) {
  49.         while (abs(dif) > 0) {
  50.             dif = abs(dif);
  51.             l1 = '0' + l1;
  52.             dif--;
  53.         }
  54.  
  55.     }
  56.     dl1 = l1.length();
  57.     while (dl1 >= 0) {
  58.  
  59.         switch (l1[dl1 - 1]) {
  60.  
  61.         case '0':
  62.             if (l2[dl1] == '0') {
  63.                 sum = '0' + sum;
  64.             }
  65.             else
  66.                 sum = '1' + sum;
  67.         case '1':
  68.             if (l2[dl1] == '0') {
  69.                 sum = '1' + sum;
  70.             }
  71.             else {
  72.                 sum = '0' + sum;
  73.                 if (dl1 > 0) {
  74.                     if (l1[dl1 - 1] == '1') {
  75.                         l1[dl1 - 1] = '2';
  76.                     }
  77.                     else
  78.                         l1[dl1 - 1] = '1';
  79.                 }
  80.                 else
  81.                     sum = '1' + sum;
  82.  
  83.             }
  84.         case '2':
  85.             if (l2[dl1] == '0') {
  86.                 sum = '0' + sum;
  87.                 if (dl1 > 0) {
  88.                     if (l1[dl1 - 1] == '1') {
  89.                         l1[dl1 - 1] = '2';
  90.                     }
  91.                     else
  92.                         l1[dl1 - 1] = '1';
  93.  
  94.                 }
  95.                 else
  96.                     sum = '1' + sum;
  97.             }
  98.             else {
  99.                 sum = '1' + sum;
  100.                 if (dl1 > 0) {
  101.                     if (l1[dl1 - 1] == '1') {
  102.                         l1[dl1 - 1] = '2';
  103.                     }
  104.                     else
  105.                         l1[dl1 - 1] = '1';
  106.                 }
  107.                 else
  108.                     sum = '1' + sum;
  109.  
  110.             }
  111.         }
  112.         dl1--;
  113.     }
  114.  
  115.     /* if (dl1 != dl2) {
  116.      if (dl1 > dl2) {
  117.      while (dl1 != dl2) {
  118.      dl2++;
  119.      for (int i = dl2 - 1; i >= 0; i--) {
  120.      cisl2[dl2] = '\0';
  121.      char tmp = cisl2[i];
  122.      cisl2[i + 1] = tmp;
  123.      }
  124.      cisl2[0] = '0';
  125.      }
  126.      }
  127.      else
  128.      while (dl1 != dl2) {
  129.      dl1++;
  130.      for (int i = dl1 - 1; i >= 0; i--) {
  131.      cisl1[dl1] = '\0';
  132.      char tmp = cisl1[i];
  133.      cisl1[i + 1] = tmp;
  134.      }
  135.      cisl1[0] = '0';
  136.      }
  137.  
  138.      } */
  139.     // dl1 = dl2;
  140.     /* if (cisl1[0] == '1') {
  141.      for (int i = 0; i < dl1; i++) {
  142.      if (cisl1[i] == '1') {
  143.      cisl1[i] = '0';
  144.      }
  145.      else
  146.      cisl1[i] = '1';
  147.      }
  148.      }
  149.      if (cisl2[0] == '1') {
  150.      for (int i = 0; i < dl1; i++) {
  151.      if (cisl2[i] == '1') {
  152.      cisl2[i] = '0';
  153.      }
  154.      else
  155.      cisl2[i] = '1';
  156.      }
  157.      } */
  158.     /* cout << l1 << endl;
  159.      cout << l2; */
  160.     cout << sum;
  161.     getch();
  162.     return 0;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement